reckfellENGINE

PhysicsBody2D

Базовый класс физических тел 2D.

На этой странице
class PhysicsBody2DReckfellSharpНаследует CollisionObject2D

PhysicsBody2D объединяет операции тела и запрос движения MoveAndCollide. Для управляемого персонажа выбирайте CharacterBody, для сил/импульсов RigidBody, для стены StaticBody.

MoveAndCollide проверяет перемещение в единицах расстояния, возвращает контакт либо null и может работать в testOnly без перемещения. Ответ не является автоматическим скольжением или отражением. GetGravity предоставляет действующее поле; применение к скорости персонажа остаётся вашей логикой.

Рабочие примеры.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Методы6

AddCollisionExceptionWithvoid
# AddCollisionExceptionWith
C#
public void AddCollisionExceptionWith(Entity body);

Добавляет тело в список тел, с которыми данное тело не может столкнуться.

Параметры
ИмяТипПо умолчанию
bodyEntity—
GetCollisionExceptionsReckfell.Collections.Array<PhysicsBody2D>
# GetCollisionExceptions
C#
public Reckfell.Collections.Array<PhysicsBody2D> GetCollisionExceptions();

Возвращает массив узлов, которые были добавлены как исключения столкновений для этого тела.

Возвращает Reckfell.Collections.Array<PhysicsBody2D>
GetGravityVector2
# GetGravity
C#
public Vector2 GetGravity();

Возвращает вектор гравитации, вычисленный из всех источников, которые могут влиять на тело, включая все переопределения гравитации из узлов Area2D и глобальную мировую гравитацию.

Возвращает Vector2
MoveAndCollideKinematicCollision2D
# MoveAndCollide
C#
public KinematicCollision2D MoveAndCollide(Vector2 motion, bool testOnly = false, float safeMargin = 0.08f, bool recoveryAsCollision = false);

Проверяет перемещение за вызов, обычно velocity × delta. Возвращает KinematicCollision либо null. testOnly не перемещает тело; скольжение/отражение остатка задаётся отдельно.

Параметры
ИмяТипПо умолчанию
motionVector2—
testOnlyboolfalse
safeMarginfloat0.08f
recoveryAsCollisionboolfalse
Возвращает KinematicCollision2D
RemoveCollisionExceptionWithvoid
# RemoveCollisionExceptionWith
C#
public void RemoveCollisionExceptionWith(Entity body);

Удаляет тело из списка тел, с которыми данное тело не может столкнуться.

Параметры
ИмяТипПо умолчанию
bodyEntity—
TestMovebool
# TestMove
C#
public bool TestMove(Transform2D from, Vector2 motion, KinematicCollision2D collision = null, float safeMargin = 0.08f, bool recoveryAsCollision = false);

Проверяет наличие столкновений без перемещения тела. Чтобы не зависеть от частоты кадров в Entity._PhysicsProcess или Entity._Process, motion следует вычислять с помощью delta. Виртуально устанавливает положение, масштаб и поворот узла в соответствии с заданным Transform2D, затем пытается переместить тело по вектору motion. Возвращает true, если столкновение остановит движение тела по всему пути. collision — необязательный объект типа KinematicCollision2D, который содержит дополнительную информацию о столкновении при остановке или при касании другого тела по ходу движения. safe_margin — дополнительный запас, используемый для восстановления при столкновении (подробнее см. в CharacterBody2D.SafeMargin). Если recovery_as_collision имеет значение true, любое отклонение от фазы восстановления также считается столкновением; это полезно для проверки того, будет ли тело касаться других тел.

Параметры
ИмяТипПо умолчанию
fromTransform2D—
motionVector2—
collisionKinematicCollision2Dnull
safeMarginfloat0.08f
recoveryAsCollisionboolfalse
Возвращает bool
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.