Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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 🔗
Returns the body's velocity at the given relative position.
local_position is the offset from the body origin in global coordinates.
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().