You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Эта функция должна применять эффект гравитации к конкретному объекту (obj). Сначала нужно проверить, что полученный объект поклоняется физическим законам нашего игрового мира. Для этого нужно, чтобы у него был включен компонент физики (obj.physics.enabled) и коллайдер должен быть типа ColliderType::DYNAMIC. Последнее можно проверить, используя метод of_type для obj.collider.
Для того, чтобы физика повлияла на объект нужно сделать несколько вещей:
Изменить ускорение (acceleration) в компоненте obj.physics, прибавив к нему ускорение свободного падения на время в квадрате. В нашем случае ускорение свободного падения - это вектор направленный вниз с длинной GRAVITY (глобальная переменная), а время с прошлого кадра хранится в переменной dt.
Увеличить скорость на новое значение ускорения.
Ограничить скорость, чтобы она не превышала максимальную скорость падения. То есть в какой-то момент падения, игрок перестаёт ускоряться. Здесь можно поиграться со значениями. Нам, например, понравилось 200 в качестве максимальной скорости падения.
Осталось только изменить позицию игрока, прибавив к ней скорость, умноженную на время с прошлого кадра.
The text was updated successfully, but these errors were encountered:
Эта функция должна применять эффект гравитации к конкретному объекту (obj). Сначала нужно проверить, что полученный объект поклоняется физическим законам нашего игрового мира. Для этого нужно, чтобы у него был включен компонент физики (obj.physics.enabled) и коллайдер должен быть типа ColliderType::DYNAMIC. Последнее можно проверить, используя метод of_type для obj.collider.
Для того, чтобы физика повлияла на объект нужно сделать несколько вещей:
The text was updated successfully, but these errors were encountered: