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.

PhysicsDirectBodyState2D

Hérite de : Object

Hérité par : PhysicsDirectBodyState2DExtension

Fournit un accès direct à un corps physique dans le PhysicsServer2D.

Description

Fournit un accès direct à un corps physique dans le PhysicsServer2D, permettant des changements sécurisés aux propriétés physiques. Cet objet est passé par le callback d'état direct de RigidBody2D, et est pensé pour changer l'état direct de ce corps. Voir RigidBody2D._integrate_forces().

Tutoriels

Propriétés

float

angular_velocity

Vector2

center_of_mass

Vector2

center_of_mass_local

int

collision_layer

int

collision_mask

float

inverse_inertia

float

inverse_mass

Vector2

linear_velocity

bool

sleeping

float

step

float

total_angular_damp

Vector2

total_gravity

float

total_linear_damp

Transform2D

transform

Méthodes

void

add_constant_central_force(force: Vector2 = Vector2(0, 0))

void

add_constant_force(force: Vector2, position: Vector2 = Vector2(0, 0))

void

add_constant_torque(torque: float)

void

apply_central_force(force: Vector2 = Vector2(0, 0))

void

apply_central_impulse(impulse: Vector2)

void

apply_force(force: Vector2, position: Vector2 = Vector2(0, 0))

void

apply_impulse(impulse: Vector2, position: Vector2 = Vector2(0, 0))

void

apply_torque(torque: float)

void

apply_torque_impulse(impulse: float)

Vector2

get_constant_force() const

float

get_constant_torque() const

RID

get_contact_collider(contact_idx: int) const

int

get_contact_collider_id(contact_idx: int) const

Object

get_contact_collider_object(contact_idx: int) const

Vector2

get_contact_collider_position(contact_idx: int) const

int

get_contact_collider_shape(contact_idx: int) const

Vector2

get_contact_collider_velocity_at_position(contact_idx: int) const

int

get_contact_count() const

Vector2

get_contact_impulse(contact_idx: int) const

Vector2

get_contact_local_normal(contact_idx: int) const

Vector2

get_contact_local_position(contact_idx: int) const

int

get_contact_local_shape(contact_idx: int) const

Vector2

get_contact_local_velocity_at_position(contact_idx: int) const

PhysicsDirectSpaceState2D

get_space_state()

Vector2

get_velocity_at_local_position(local_position: Vector2) const

void

integrate_forces()

void

set_constant_force(force: Vector2)

void

set_constant_torque(torque: float)


Descriptions des propriétés

float angular_velocity 🔗

  • void set_angular_velocity(value: float)

  • float get_angular_velocity()

La vitesse de rotation du corps en radians par seconde.


Vector2 center_of_mass 🔗

Le centre de masse du corps relatif au centre du corps dans le système de coordonnées global.


Vector2 center_of_mass_local 🔗

  • Vector2 get_center_of_mass_local()

La position du centre de masse du corps dans le système de coordonnées local du corps.


int collision_layer 🔗

  • void set_collision_layer(value: int)

  • int get_collision_layer()

La couche de collision du corps.


int collision_mask 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

Le masque de collision du corps.


float inverse_inertia 🔗

  • float get_inverse_inertia()

L'inverse de l'inertie du corps.


float inverse_mass 🔗

  • float get_inverse_mass()

L'inverse de la masse du corps.


Vector2 linear_velocity 🔗

  • void set_linear_velocity(value: Vector2)

  • Vector2 get_linear_velocity()

La vitesse linéaire d'un corps en pixels par seconde.


bool sleeping 🔗

  • void set_sleep_state(value: bool)

  • bool is_sleeping()

Si true, le corps est actuellement au repos (inactif).


float step 🔗

L'étape de temps (delta) utilisé pour la simulation.


float total_angular_damp 🔗

  • float get_total_angular_damp()

Le vitesse à laquelle le corps cesse de tourner, s'il n'y a pas d'autres forces qui le déplacent.


Vector2 total_gravity 🔗

Le vecteur total de gravité actuellement appliqué à ce corps.


float total_linear_damp 🔗

  • float get_total_linear_damp()

Le vitesse à laquelle le corps cesse de se déplacer, s'il n'y a pas d'autres forces qui le déplacent.


Transform2D transform 🔗

La matrice de transformation du corps.


Descriptions des méthodes

void add_constant_central_force(force: Vector2 = Vector2(0, 0)) 🔗

Ajoute une force directionnelle constante n'affectant pas la rotation, qui continue d'être appliquée au cours du temps jusqu'à ce qu'elle soit enlevée avec constant_force = Vector2(0, 0).

Ceci est équivalent à utiliser add_constant_force() au centre de masse du corps.


void add_constant_force(force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗

Ajoute une force positionnée constante au corps qui continue d'être appliquée au cours du temps jusqu'à ce qu'elle soit enlevée avec constant_force = Vector2(0, 0).

position est le décalage depuis l'origine du corps dans les coordonnées globales.


void add_constant_torque(torque: float) 🔗

Ajoute une force de rotation constante n'affectant pas la positon, qui continue d'être appliquée au cours du temps jusqu'à ce qu'elle soit enlevée avec constant_torque = 0.


void apply_central_force(force: Vector2 = Vector2(0, 0)) 🔗

Applique une force directionnelle n'affectant pas la rotation. Une force est dépendante du temps et destinée à être appliquée chaque mise à jour physique.

Ceci est équivalent à utiliser apply_force() au centre de masse du corps.


void apply_central_impulse(impulse: Vector2) 🔗

Applique une impulsion directionnelle n'affectant pas la rotation.

Une impulsion est indépendante du temps ! Appliquer une impulsion à chaque trame entraînerait une force dépendante du taux de rafraîchissement. Pour cette raison, elle ne devrait être utilisée que pour simuler des impacts ponctuels (utilisez les fonctions "_force" sinon).

Ceci est équivalent à utiliser apply_impulse() au centre de masse du corps.


void apply_force(force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗

Applique une force positionnée au corps. Une force est dépendante du temps et destinée à être appliquée à chaque mise à jour physique.

position est le décalage depuis l'origine du corps dans les coordonnées globales.


void apply_impulse(impulse: Vector2, position: Vector2 = Vector2(0, 0)) 🔗

Applique une impulsion positionnée au corps.

Une impulsion est indépendante du temps ! Appliquer une impulsion à chaque trame entraînerait une force dépendante du taux de rafraîchissement. Pour cette raison, elle ne devrait être utilisée que pour simuler des impacts ponctuels (utilisez les fonctions "_force" sinon).

position est le décalage depuis l'origine du corps dans les coordonnées globales.


void apply_torque(torque: float) 🔗

Applique une force de rotation sans affecter la position. Une force est dépendante du temps et destinée à être appliquée à chaque mise à jour physique.

Note : L'inverse de l'inertie (inverse_inertia) est nécessaire pour que cela fonctionne. Pour avoir de l'inverse de l'inertie (inverse_inertia), un CollisionShape2D actif doit être un enfant du nœud, ou vous pouvez définir manuellement inverse_inertia.


void apply_torque_impulse(impulse: float) 🔗

Applique une impulsion de rotation au corps sans affecter la position.

Une impulsion est indépendante du temps ! Appliquer une impulsion à chaque trame entraînerait une force dépendante du taux de rafraîchissement. Pour cette raison, elle ne devrait être utilisée que pour simuler des impacts ponctuels (utilisez les fonctions "_force" sinon).

Note : L'inverse de l'inertie (inverse_inertia) est nécessaire pour que cela fonctionne. Pour avoir de l'inverse de l'inertie (inverse_inertia), un CollisionShape2D actif doit être un enfant du nœud, ou vous pouvez définir manuellement inverse_inertia.


Vector2 get_constant_force() const 🔗

Renvoie les forces positionnelles constantes totales du corps appliquées lors de chaque mise à jour physique.

Voir add_constant_force() et add_constant_central_force().


float get_constant_torque() const 🔗

Renvoie les forces de rotation constantes totales du corps appliquées lors de chaque mise à jour physique.

Voir add_constant_torque().


RID get_contact_collider(contact_idx: int) const 🔗

Renvoie le RID du collisionneur.


int get_contact_collider_id(contact_idx: int) const 🔗

Renvoie l’id de l’objet du collisionneur.


Object get_contact_collider_object(contact_idx: int) const 🔗

Renvoie l'objet collider. Cela dépend de la façon dont il a été créé (va renvoyer un nœud de scène si c'est ce qui a été utilisé pour le créer).


Vector2 get_contact_collider_position(contact_idx: int) const 🔗

Renvoie la position du point de contact sur le collideur dans le système de coordonnées global.


int get_contact_collider_shape(contact_idx: int) const 🔗

Renvoie l'index de forme du collisionneur.


Vector2 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗

Renvoie le vecteur de vélocité au point de contact du collider.


int get_contact_count() const 🔗

Renvoie le nombre de contacts que ce corps a avec d'autres corps.

Note : Par défaut, cela renvoie 0 sauf si les corps sont configurés pour surveiller les contacts. Voir RigidBody2D.contact_monitor.


Vector2 get_contact_impulse(contact_idx: int) const 🔗

Renvoie l'impulsion créée par le contact.


Vector2 get_contact_local_normal(contact_idx: int) const 🔗

Renvoie la normale locale au point de contact.


Vector2 get_contact_local_position(contact_idx: int) const 🔗

Renvoie la position du point de contact sur le corps dans le système de coordonnées global.


int get_contact_local_shape(contact_idx: int) const 🔗

Renvoie l'index de la forme locale de la collision.


Vector2 get_contact_local_velocity_at_position(contact_idx: int) const 🔗

Renvoie le vecteur de vélocité au point de contact du corps.


PhysicsDirectSpaceState2D get_space_state() 🔗

Renvoie l'état actuel de l'espace, utile pour les requêtes.


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() 🔗

Met à jour la vitesse linéaire et angulaire du corps en appliquant la gravité et l'amortissement pour l'équivalent d'un tic de calcul de la physique.


void set_constant_force(force: Vector2) 🔗

Définit les forces positionnelles constantes totales du corps appliquées lors de chaque mise à jour physique.

Voir add_constant_force() et add_constant_central_force().


void set_constant_torque(torque: float) 🔗

Définit les forces de rotation constantes totales du corps appliquées lors de chaque mise à jour physique.

Voir add_constant_torque().