PhysicsBody2D

Успадковує: CollisionObject2D < Node2D < CanvasItem < Node < Object

Успадковано від: CharacterBody2D, RigidBody2D, StaticBody2D

Абстрактний базовий клас для 2D ігрових об'єктів, уражених фізикою.

Опис

PhysicsBody2D є абстрактним базовим класом для 2D ігрових об'єктів, уражених фізикою. Всі 2D фізико-фізичних органів успадкують від неї.

Посібники

Властивості

bool

input_pickable

false (overrides CollisionObject2D)

Методи

void

add_collision_exception_with(body: Node)

Array[PhysicsBody2D]

get_collision_exceptions()

Vector2

get_gravity() const

KinematicCollision2D

move_and_collide(motion: Vector2, test_only: bool = false, safe_margin: float = 0.08, recovery_as_collision: bool = false)

void

remove_collision_exception_with(body: Node)

bool

test_move(from: Transform2D, motion: Vector2, collision: KinematicCollision2D = null, safe_margin: float = 0.08, recovery_as_collision: bool = false)


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

void add_collision_exception_with(body: Node) 🔗

Додати тіло до переліку тіл, які це тіло не може поєднуватися з.


Array[PhysicsBody2D] get_collision_exceptions() 🔗

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


Vector2 get_gravity() const 🔗

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


KinematicCollision2D move_and_collide(motion: Vector2, test_only: bool = false, safe_margin: float = 0.08, recovery_as_collision: bool = false) 🔗

Рухає тіло вздовж вектора motion. Для того, щоб бути частотою кадрів незалежною в Node._physics_process() або Node._process(), руху слід комп'ютерно використовувати delta.

Повернутися до KinematicCollision2D, яка містить інформацію про зіткнення при зупинці, або при дотику іншого тіла вздовж руху.

Якщо test_only є true, тіло не рухається, але інформація про зіткнення б-бе.

Safe_margin є додатковим запасом, що використовується для відновлення зіткнення (див. CharacterBody2D.safe_margin для отримання більш детальної інформації).

Якщо Recovery_as_collision є true, будь-який депейнація з фази відновлення також повідомляється як зіткнення; це використовується наприклад CharacterBody2D для поліпшення виявлення підлоги під час натискання підлоги.


void remove_collision_exception_with(body: Node) 🔗

Видаліть тіло з переліку тіл, які це тіло не може зв'язатися з.


bool test_move(from: Transform2D, motion: Vector2, collision: KinematicCollision2D = null, safe_margin: float = 0.08, recovery_as_collision: bool = false) 🔗

Перевірка зіткнень без переміщення тіла. Для того, щоб бути частотою кадрів незалежною в Node._physics_process() або Node._process(), руху слід комп'ютерно використовувати delta.

Практично встановлює позицію вершини, масштаб і обертання до цього Transform2D, потім намагається перемістити тіло вздовж вектора руху. Повертає true, якщо зіткнення зупинить тіло з переміщення по всьому шляху.

collision - це додатковий об'єкт типу KinematicCollision2D, який містить додаткову інформацію про зіткнення при зупинці, або при дотику іншого тіла вздовж руху.

Safe_margin є додатковим запасом, що використовується для відновлення зіткнення (див. CharacterBody2D.safe_margin для отримання більш детальної інформації).

Якщо Recovery_as_collision є true, будь-яке депенетування з фази відновлення також повідомляється як зіткнення; це корисно для перевірки того, чи буде тіло touch будь-які інші тіла.