Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

(ApplyGravity) Применение гравитации к объекту #5

Open
mchernigin opened this issue Apr 1, 2024 · 0 comments

Comments

@mchernigin
Copy link
Member

Эта функция должна применять эффект гравитации к конкретному объекту (obj). Сначала нужно проверить, что полученный объект поклоняется физическим законам нашего игрового мира. Для этого нужно, чтобы у него был включен компонент физики (obj.physics.enabled) и коллайдер должен быть типа ColliderType::DYNAMIC. Последнее можно проверить, используя метод of_type для obj.collider.

Для того, чтобы физика повлияла на объект нужно сделать несколько вещей:

  1. Изменить ускорение (acceleration) в компоненте obj.physics, прибавив к нему ускорение свободного падения на время в квадрате. В нашем случае ускорение свободного падения - это вектор направленный вниз с длинной GRAVITY (глобальная переменная), а время с прошлого кадра хранится в переменной dt.
  2. Увеличить скорость на новое значение ускорения.
  3. Ограничить скорость, чтобы она не превышала максимальную скорость падения. То есть в какой-то момент падения, игрок перестаёт ускоряться. Здесь можно поиграться со значениями. Нам, например, понравилось 200 в качестве максимальной скорости падения.
  4. Осталось только изменить позицию игрока, прибавив к ней скорость, умноженную на время с прошлого кадра.
@mchernigin mchernigin converted this from a draft issue Apr 1, 2024
@vasthecat vasthecat moved this to Todo in MIT Game 2024 [2] Apr 21, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

1 participant