PhysicsDirectBodyState2D

Hereda: Object

Heredado por: PhysicsDirectBodyState2DExtension

Proporciona acceso directo a un cuerpo de física en PhysicsServer2D.

Descripción

Provides direct access to a physics body in the PhysicsServer2D, allowing safe changes to physics properties. This object is passed via the direct state callback of RigidBody2D, and is intended for changing the direct state of that body. See RigidBody2D._integrate_forces().

Tutoriales

Propiedades

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étodos

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)


Descripciones de Propiedades

float angular_velocity 🔗

  • void set_angular_velocity(value: float)

  • float get_angular_velocity()

La velocidad de rotación del cuerpo en radianes por segundo.


Vector2 center_of_mass 🔗

La posición del centro de masa del cuerpo relativa al centro del cuerpo en el sistema de coordenadas global.


Vector2 center_of_mass_local 🔗

  • Vector2 get_center_of_mass_local()

Posición del centro de masa del cuerpo en el sistema de coordenadas local del cuerpo.


int collision_layer 🔗

  • void set_collision_layer(value: int)

  • int get_collision_layer()

La capa de colisión del cuerpo.


int collision_mask 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

La máscara de colisión del cuerpo.


float inverse_inertia 🔗

  • float get_inverse_inertia()

El inverso de la inercia del cuerpo.


float inverse_mass 🔗

  • float get_inverse_mass()

El inverso de la masa del cuerpo.


Vector2 linear_velocity 🔗

  • void set_linear_velocity(value: Vector2)

  • Vector2 get_linear_velocity()

La velocidad lineal del cuerpo en píxeles por segundo.


bool sleeping 🔗

  • void set_sleep_state(value: bool)

  • bool is_sleeping()

Si es true, este cuerpo está actualmente durmiendo (no está activo).


float step 🔗

El paso temporal (delta) utilizado para la simulación.


float total_angular_damp 🔗

  • float get_total_angular_damp()

La velocidad a la que el cuerpo deja de girar, si no hay otras fuerzas que lo muevan.


Vector2 total_gravity 🔗

El vector de gravedad total que se aplica actualmente a este cuerpo.


float total_linear_damp 🔗

  • float get_total_linear_damp()

La velocidad a la que el cuerpo deja de moverse, si no hay otras fuerzas que lo muevan.


Transform2D transform 🔗

La matriz de transformación del cuerpo.


Descripciones de Métodos

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

Añade una fuerza direccional constante sin afectar la rotación que se sigue aplicando con el tiempo hasta que se borra con constant_force = Vector2(0, 0).

Esto es equivalente a usar add_constant_force() en el centro de masa del cuerpo.


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

Añade una fuerza constante posicionada al cuerpo que se sigue aplicando con el tiempo hasta que se borra con constant_force = Vector2(0, 0).

position es el desplazamiento desde el origen del cuerpo en coordenadas globales.


void add_constant_torque(torque: float) 🔗

Añade una fuerza rotacional constante sin afectar la posición que se sigue aplicando con el tiempo hasta que se borra con constant_torque = 0.


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

Aplica una fuerza direccional sin afectar la rotación. Una fuerza depende del tiempo y está pensada para ser aplicada en cada actualización de la física.

Esto es equivalente a usar apply_force() en el centro de masa del cuerpo.


void apply_central_impulse(impulse: Vector2) 🔗

Aplica un impulso direccional sin afectar la rotación.

¡Un impulso es independiente del tiempo! Aplicar un impulso en cada fotograma resultaría en una fuerza dependiente de la velocidad de fotogramas. Por esta razón, solo debe usarse al simular impactos únicos (usa las funciones "_force" en su lugar).

Esto es equivalente a usar apply_impulse() en el centro de masa del cuerpo.


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

Aplica una fuerza posicionada al cuerpo. Una fuerza depende del tiempo y está pensada para ser aplicada en cada actualización de la física.

position es el desplazamiento desde el origen del cuerpo en coordenadas globales.


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

Aplica un impulso posicionado al cuerpo.

¡Un impulso es independiente del tiempo! Aplicar un impulso en cada fotograma resultaría en una fuerza dependiente de la velocidad de fotogramas. Por esta razón, solo debe usarse al simular impactos únicos (usa las funciones "_force" en su lugar).

position es el desplazamiento desde el origen del cuerpo en coordenadas globales.


void apply_torque(torque: float) 🔗

Aplica una fuerza rotacional sin afectar la posición. Una fuerza depende del tiempo y está pensada para ser aplicada en cada actualización de la física.

Nota: inverse_inertia es requerido para que esto funcione. Para tener inverse_inertia, una CollisionShape2D activa debe ser hija del nodo, o puedes establecer manualmente inverse_inertia.


void apply_torque_impulse(impulse: float) 🔗

Aplica un impulso rotacional al cuerpo sin afectar la posición.

¡Un impulso es independiente del tiempo! Aplicar un impulso en cada fotograma resultaría en una fuerza dependiente de la velocidad de fotogramas. Por esta razón, solo debe usarse al simular impactos únicos (usa las funciones "_force" en su lugar).

Nota: inverse_inertia es requerido para que esto funcione. Para tener inverse_inertia, una CollisionShape2D activa debe ser hija del nodo, o puedes establecer manualmente inverse_inertia.


Vector2 get_constant_force() const 🔗

Devuelve las fuerzas posicionales constantes totales del cuerpo aplicadas durante cada actualización de la física.

Véase add_constant_force() y add_constant_central_force().


float get_constant_torque() const 🔗

Devuelve las fuerzas rotacionales constantes totales del cuerpo aplicadas durante cada actualización de la física.

Véase add_constant_torque().


RID get_contact_collider(contact_idx: int) const 🔗

Devuelve el RID del colisionador.


int get_contact_collider_id(contact_idx: int) const 🔗

Devuelve la identificación del objeto del colisionador.


Object get_contact_collider_object(contact_idx: int) const 🔗

Devuelve el objeto del colisionador. Esto depende de cómo fue creado (devolverá un nodo de la escena si tal fue usado para crearlo).


Vector2 get_contact_collider_position(contact_idx: int) const 🔗

Devuelve la posición del punto de contacto en el colisionador en el sistema de coordenadas global.


int get_contact_collider_shape(contact_idx: int) const 🔗

Devuelve el índice de forma del colisionador.


Vector2 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗

Devuelve el vector de velocidad en el punto de contacto del colisionador.


int get_contact_count() const 🔗

Devuelve el número de contactos que este cuerpo tiene con otros cuerpos.

Nota: Por defecto, esto devuelve 0 a menos que los cuerpos estén configurados para monitorear los contactos. Véase RigidBody2D.contact_monitor.


Vector2 get_contact_impulse(contact_idx: int) const 🔗

Devuelve el impulso creado por el contacto.


Vector2 get_contact_local_normal(contact_idx: int) const 🔗

Devuelve la normalidad local en el punto de contacto.


Vector2 get_contact_local_position(contact_idx: int) const 🔗

Devuelve la posición del punto de contacto en el cuerpo en el sistema de coordenadas global.


int get_contact_local_shape(contact_idx: int) const 🔗

Devuelve el índice de forma local de la colisión.


Vector2 get_contact_local_velocity_at_position(contact_idx: int) const 🔗

Devuelve el vector de velocidad en el punto de contacto del cuerpo.


PhysicsDirectSpaceState2D get_space_state() 🔗

Devuelve el estado actual del espacio, útil para las consultas.


Vector2 get_velocity_at_local_position(local_position: Vector2) const 🔗

Devuelve la velocidad del cuerpo en la posición relativa dada, incluyendo la traslación y la rotación.


void integrate_forces() 🔗

Updates the body's linear and angular velocity by applying gravity and damping for the equivalent of one physics tick.


void set_constant_force(force: Vector2) 🔗

Establece las fuerzas posicionales constantes totales del cuerpo aplicadas durante cada actualización de la física.

Véase add_constant_force() y add_constant_central_force().


void set_constant_torque(torque: float) 🔗

Establece las fuerzas rotacionales constantes totales del cuerpo aplicadas durante cada actualización de la física.

Véase add_constant_torque().