PhysicsDirectBodyState2D
Eredita: Object
Ereditato da: PhysicsDirectBodyState2DExtension
Fornisce accesso diretto a un corpo fisico nel PhysicsServer2D.
Descrizione
Fornisce accesso diretto a un corpo fisico nel PhysicsServer2D, consentendo modifiche sicure alle proprietà fisiche. Questo oggetto è passato tramite il callback di stato diretto di RigidBody2D ed è progettato per modificare lo stato diretto di quel corpo. Vedi RigidBody2D._integrate_forces().
Tutorial
Proprietà
Metodi
Descrizioni delle proprietà
La velocità di rotazione del corpo in radianti al secondo.
Vector2 get_center_of_mass()
La posizione del centro di massa del corpo rispetto al centro del corpo nel sistema di coordinate globale.
Vector2 center_of_mass_local 🔗
Vector2 get_center_of_mass_local()
Posizione del centro di massa del corpo nel sistema di coordinate locale del corpo.
Lo strato di collisione del corpo.
La maschera di collisione del corpo.
float get_inverse_inertia()
L'inverso dell'inerzia del corpo.
float get_inverse_mass()
L'inverso della massa del corpo.
La velocità lineare del corpo in pixel al secondo.
Se true, questo corpo è attualmente in riposo (non attivo).
float get_step()
Il passo temporale (delta) utilizzato per la simulazione.
float get_total_angular_damp()
La frequenza alla quale il corpo smette di ruotare, se non ci sono altre forze che lo muovono.
Vector2 get_total_gravity()
Il vettore di gravità totale attualmente applicato a questo corpo.
float get_total_linear_damp()
La frequenza con cui il corpo smette di muoversi, se non ci sono altre forze che lo muovono.
Transform2D transform 🔗
void set_transform(value: Transform2D)
Transform2D get_transform()
La matrice di trasformazione del corpo.
Descrizioni dei metodi
void add_constant_central_force(force: Vector2 = Vector2(0, 0)) 🔗
Aggiunge una forza direzionale costante senza influenzare la rotazione che continua a essere applicata nel tempo finché non viene cancellata con constant_force = Vector2(0, 0).
Ciò equivale a usare add_constant_force() al centro di massa del corpo.
void add_constant_force(force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗
Aggiunge una forza posizionata costante senza influenzare la rotazione che continua a essere applicata nel tempo finché non viene cancellata con constant_force = Vector2(0, 0).
position è lo scostamento dall'origine del corpo in coordinate globali.
void add_constant_torque(torque: float) 🔗
Aggiunge una forza rotazionale costante senza influenzare la posizione che continua a essere applicata nel tempo finché non viene cancellata con constant_torque = 0.
void apply_central_force(force: Vector2 = Vector2(0, 0)) 🔗
Applica una forza direzionale senza influenzare la rotazione. Una forza è dipendente dal tempo e pensata per essere applicata a ogni aggiornamento della fisica
Ciò equivale a usare apply_force() al centro di massa del corpo.
void apply_central_impulse(impulse: Vector2) 🔗
Applica un impulso direzionale senza influenzare la rotazione.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
Ciò equivale a usare apply_impulse() al centro di massa del corpo.
void apply_force(force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗
Applica una forza posizionata al corpo. Una forza è dipendente dal tempo e deve essere applicata a ogni aggiornamento della fisica.
position è lo scostamento dall'origine del corpo in coordinate globali.
void apply_impulse(impulse: Vector2, position: Vector2 = Vector2(0, 0)) 🔗
Applica un impulso posizionato al corpo.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
position è lo scostamento dall'origine del corpo in coordinate globali.
void apply_torque(torque: float) 🔗
Applica una forza rotazionale senza influenzare la posizione. Una forza è dipendente dal tempo e deve essere applicata a ogni aggiornamento della fisica.
Nota: inverse_inertia è necessario affinché questo funzioni. Per avere inverse_inertia, un CollisionShape2D attivo deve essere un figlio del nodo, oppure è possibile impostare manualmente inverse_inertia.
void apply_torque_impulse(impulse: float) 🔗
Applica un impulso rotazionale al corpo senza influenzare la posizione.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
Nota: inverse_inertia è necessario affinché questo funzioni. Per avere inverse_inertia, un CollisionShape2D attivo deve essere un figlio del nodo, oppure è possibile impostare manualmente inverse_inertia.
Vector2 get_constant_force() const 🔗
Restituisce le forze posizionali costanti totali del corpo applicate durante ogni aggiornamento della fisica.
Vedi add_constant_force() e add_constant_central_force().
float get_constant_torque() const 🔗
Restituisce le forze rotazionali costanti totali del corpo applicate durante ogni aggiornamento della fisica.
Vedi add_constant_torque().
RID get_contact_collider(contact_idx: int) const 🔗
Restituisce il RID del collisore.
int get_contact_collider_id(contact_idx: int) const 🔗
Restituisce l'ID dell'oggetto del collisore.
Object get_contact_collider_object(contact_idx: int) const 🔗
Restituisce l'oggetto del collisore. Ciò dipende da come è stato creato (restituirà un nodo di scena se è stato utilizzato per crearlo).
Vector2 get_contact_collider_position(contact_idx: int) const 🔗
Restituisce la posizione del punto di contatto sul collisore nel sistema di coordinate globale.
int get_contact_collider_shape(contact_idx: int) const 🔗
Restituisce l'indice di forma del collisore.
Vector2 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗
Restituisce il vettore di velocità al punto di contatto del collisore.
int get_contact_count() const 🔗
Restituisce il numero di contatti che questo corpo ha con altri corpi.
Nota: Per impostazione predefinita, restituisce 0 a meno che i corpi non siano configurati per monitorare i contatti. Vedi RigidBody2D.contact_monitor.
Vector2 get_contact_impulse(contact_idx: int) const 🔗
Restituisce l'impulso creato dal contatto.
Vector2 get_contact_local_normal(contact_idx: int) const 🔗
Restituisce la normale locale nel punto di contatto.
Vector2 get_contact_local_position(contact_idx: int) const 🔗
Restituisce la posizione del punto di contatto sul corpo nel sistema di coordinate globale.
int get_contact_local_shape(contact_idx: int) const 🔗
Restituisce l'indice di forma locale della collisione.
Vector2 get_contact_local_velocity_at_position(contact_idx: int) const 🔗
Restituisce il vettore di velocità al punto di contatto del corpo.
PhysicsDirectSpaceState2D get_space_state() 🔗
Restituisce lo stato attuale dello spazio, utile per le interrogazioni.
Vector2 get_velocity_at_local_position(local_position: Vector2) const 🔗
Restituisce la velocità del corpo nella posizione relativa specificata, includendo sia la traslazione sia la rotazione.
void integrate_forces() 🔗
Aggiorna la velocità lineare e angolare del corpo applicando gravità e smorzamento per l'equivalente di un tick di fisica.
void set_constant_force(force: Vector2) 🔗
Imposta le forze posizionali costanti totali del corpo applicate durante ogni aggiornamento di fisica.
Vedi add_constant_force() e add_constant_central_force().
void set_constant_torque(torque: float) 🔗
Imposta le forze rotazionali costanti totali del corpo applicate durante ogni aggiornamento di fisica.
Vedi add_constant_torque().