PhysicsDirectBodyState2D

Успадковує: Object

Успадковано від: PhysicsDirectBodyState2DExtension

Забезпечує прямий доступ до фізичного тіла в PhysicsServer2D.

Опис

Забезпечує прямий доступ до фізичного тіла в PhysicsServer2D, що дозволяє безпечні зміни фізико-фізичних властивостей. Цей об'єкт пропускається через прямий державний зворотний зв'язок RigidBody2D, і призначений для зміни безпосереднього стану цього тіла. RigidBody2D._integrate_forces().

Посібники

Властивості

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

Методи

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)


Описи властивостей

float angular_velocity 🔗

  • void set_angular_velocity(value: float)

  • float get_angular_velocity()

Швидкість обертання тіла в radians за секунду.


Vector2 center_of_mass 🔗

Центр маси тіла відносно центру тіла у глобальній координатній системі.


Vector2 center_of_mass_local 🔗

  • Vector2 get_center_of_mass_local()

Центр маси тіла в локальній координатній системі тіла.


int collision_layer 🔗

  • void set_collision_layer(value: int)

  • int get_collision_layer()

Шар зіткнення тіла.


int collision_mask 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

Маска зіткнення тіла.


float inverse_inertia 🔗

  • float get_inverse_inertia()

Інверс інерції тіла.


float inverse_mass 🔗

  • float get_inverse_mass()

Інверс маси тіла.


Vector2 linear_velocity 🔗

  • void set_linear_velocity(value: Vector2)

  • Vector2 get_linear_velocity()

Лінійна швидкість тіла в пікселях на секунду.


bool sleeping 🔗

  • void set_sleep_state(value: bool)

  • bool is_sleeping()

Якщо true, це тіло зараз спить (не активний).


float step 🔗

Часовий (delta) використовується для моделювання.


float total_angular_damp 🔗

  • float get_total_angular_damp()

Швидкість, при якій тіло припиняє обертати, якщо інші сили не рухаються.


Vector2 total_gravity 🔗

Вектор загальної ваги в даний час застосовується до цього тіла.


float total_linear_damp 🔗

  • float get_total_linear_damp()

Швидкість, при якій тіло припиняє рух, якщо інші сили не рухаються.


Transform2D transform 🔗

Матриця трансформації тіла.


Описи методів

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

Додавання постійної спрямованої сили без ударної обертання, яка зберігає час, поки не очищається constant_force = Vector2(0, 0).

Це еквівалентно використанню add_constant_force() в центрі маси тіла.


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

Додавання постійної позиціонованої сили до тіла, яка зберігає час, поки не очищається constant_force = Vector2(0, 0).

position – це зміщення з організму в глобальних координатах.


void add_constant_torque(torque: float) 🔗

Додає постійної обертальної сили, не впливаючи на позицію, яка зберігає час, поки не очищається constant_torque = 0.


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

Застосовується спрямована сила без ударного обертання. Знаряддя часу залежна і означена для кожного оновлення фізики.

Це еквівалентно використання apply_force() в центрі маси тіла.


void apply_central_impulse(impulse: Vector2) 🔗

Застосовується спрямований імпульс без впливу обертання.

Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).

Це еквівалентно використання apply_impulse() в центрі маси тіла.


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

Застосовується сила позиціонування організму. Знаряддя часу залежна і означена для кожного оновлення фізики.

position – це зміщення з організму в глобальних координатах.


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

Застосує поміщений імпульс до тіла.

Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).

position – це зміщення з організму в глобальних координатах.


void apply_torque(torque: float) 🔗

Застосовує обертальну силу, не впливаючи на положення. Сила залежить від часу та призначена для застосування під час кожного оновлення фізики.

Примітка: Для роботи цього потрібен inverse_inertia. Щоб мати inverse_inertia, активний CollisionShape2D має бути дочірнім елементом вузла, або ви можете вручну встановити inverse_inertia.


void apply_torque_impulse(impulse: float) 🔗

Застосовує обертальний імпульс до тіла без впливу на положення.

Імпульс часозалежний! Нанесення імпульсу кожного кадру призведе до каркасно-залежної сили. З цієї причини слід використовувати тільки при симуляції одноразових ударів (користування функції "_сил" інакше).

Примітка: inverse_inertia обов'язково для роботи. Для того, щоб мати inverse_inertia, активний CollisionShape2D повинен бути дитиною вузла, або ви можете вручну встановити inverse_inertia.


Vector2 get_constant_force() const 🔗

Під час кожного оновлення фізики повертається загальний стан сил тіла.

Див. add_constant_force() і add_constant_central_force().


float get_constant_torque() const 🔗

Під час кожного оновлення фізики повернулися загальні постійні обертальні сили.

Див. add_constant_torque().


RID get_contact_collider(contact_idx: int) const 🔗

Повертає увагу RID.


int get_contact_collider_id(contact_idx: int) const 🔗

Повернення об'єкта Collider id.


Object get_contact_collider_object(contact_idx: int) const 🔗

Повертає об'єкт Collider. Це залежить від того, як він був створений (поверніть вузол сцени, якщо це було використано для створення).


Vector2 get_contact_collider_position(contact_idx: int) const 🔗

Повертає позицію контактної точки на Collider у глобальній координатній системі.


int get_contact_collider_shape(contact_idx: int) const 🔗

Повертає індекс форми Collider.


Vector2 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗

Повертаємо вектор швидкості на контактній точці комірця.


int get_contact_count() const 🔗

Повертає кількість контактів, що це тіло має інші тіла.

Примітка: За замовчуванням, це повертає 0, якщо органи налаштовані для моніторингу контактів. Див. RigidBody2D.contact_monitor.


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

Під час кожного оновлення фізики налаштовується загальна констанційна сила тіла.

Див. add_constant_force() і add_constant_central_force().


void set_constant_torque(torque: float) 🔗

Встановлює загальні постійні обертальні сили організму, що застосовуються під час кожного оновлення фізики.

Див. add_constant_torque().