PhysicsBody2D
Наследует: CollisionObject2D < Node2D < CanvasItem < Node < Object
Наследуется от: CharacterBody2D, RigidBody2D, StaticBody2D
Абстрактный базовый класс для 2D-игровых объектов, на которые влияет физика.
Описание
PhysicsBody2D — абстрактный базовый класс для 2D-игровых объектов, на которые влияет физика. Все 2D-физические тела наследуются от него.
Обучающие материалы
Свойства
input_pickable |
|
Методы
void |
add_collision_exception_with(body: Node) |
get_gravity() const |
|
move_and_collide(motion: Vector2, test_only: bool = false, safe_margin: float = 0.08, recovery_as_collision: bool = false) |
|
void |
|
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() 🔗
Возвращает массив узлов, которые были добавлены как исключения столкновений для этого тела.
Возвращает вектор гравитации, вычисленный из всех источников, которые могут влиять на тело, включая все переопределения гравитации из узлов 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(), motion следует вычислять с помощью 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(), motion следует вычислять с помощью delta.
Виртуально устанавливает положение, масштаб и поворот узла в соответствии с заданным Transform2D, затем пытается переместить тело по вектору motion. Возвращает true, если столкновение остановит движение тела по всему пути.
collision — необязательный объект типа KinematicCollision2D, который содержит дополнительную информацию о столкновении при остановке или при касании другого тела по ходу движения.
safe_margin — дополнительный запас, используемый для восстановления при столкновении (подробнее см. в CharacterBody2D.safe_margin).
Если recovery_as_collision имеет значение true, любое отклонение от фазы восстановления также считается столкновением; это полезно для проверки того, будет ли тело касаться других тел.