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
Успадковує: Object
Успадковано від: PhysicsDirectBodyState2DExtension
Забезпечує прямий доступ до фізичного тіла в PhysicsServer2D.
Опис
Забезпечує прямий доступ до фізичного тіла в PhysicsServer2D, що дозволяє безпечні зміни фізико-фізичних властивостей. Цей об'єкт пропускається через прямий державний зворотний зв'язок RigidBody2D, і призначений для зміни безпосереднього стану цього тіла. RigidBody2D._integrate_forces().
Посібники
Властивості
Методи
Описи властивостей
Швидкість обертання тіла в radians за секунду.
Vector2 get_center_of_mass()
Центр маси тіла відносно центру тіла у глобальній координатній системі.
Vector2 center_of_mass_local 🔗
Vector2 get_center_of_mass_local()
Центр маси тіла в локальній координатній системі тіла.
Шар зіткнення тіла.
Маска зіткнення тіла.
float get_inverse_inertia()
Інверс інерції тіла.
float get_inverse_mass()
Інверс маси тіла.
Лінійна швидкість тіла в пікселях на секунду.
Якщо true, це тіло зараз спить (не активний).
float get_step()
Часовий (delta) використовується для моделювання.
float get_total_angular_damp()
Швидкість, при якій тіло припиняє обертати, якщо інші сили не рухаються.
Vector2 get_total_gravity()
Вектор загальної ваги в даний час застосовується до цього тіла.
float get_total_linear_damp()
Швидкість, при якій тіло припиняє рух, якщо інші сили не рухаються.
Transform2D transform 🔗
void set_transform(value: Transform2D)
Transform2D get_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 🔗
Повертає швидкість тіла у заданій відносній позиції.
local_position — це зміщення від початку координат тіла у глобальних координатах.
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().