iDmitriyWinX
@iDmitriyWinX
Разверните мне сервер на NGNX, пожалуйста

Как работает просчёт траектории в играх типа Angry Birds?

Решая задачу по кинематике, получил формулу траектории тела, брошенного с земли под произвольным углом:5fce23eb3341a718025714.jpeg

Но к сожалению, данная формула не учитывает ни массы тела, ни силы броска, и если использовать такое в Gamedev, то компьютеру игрока прийдётся каждый кадр решать квадратное уравнение.

Как это реализовано на примере Angry Birds?
Есть сила броска, есть mg, есть масса птички, но как это всё записать в одну функцию, чтобы ещё и компьютеру игрока было не очень сложно?
  • Вопрос задан
  • 300 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
От массы тела зависит взаимодействие с другой массой.
От силы броска и массы тела — начальная скорость v.

Чаще всего действительно не доводят до аналитического решения, а каждый кадр происходит шаг численного решения дифференциального уравнения:
(vx, vy)′ = (0, −g) — ну или сопротивление воздуха добавьте
(x, y)’ = (vx, vy)

Гуглите «методы Рунге—Кутты», нам хватит метода второго порядка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
GavriKos
@GavriKos Куратор тега Разработка игр
то компьютеру игрока прийдётся каждый кадр решать квадратное уравнение.

И что? Это не особо то и тяжелые вычисления. Тем более для кор-механики.
Ответ написан
gbg
@gbg
Баянист. Тамада. Услуги.
Учебник физики за 6-7 класс средней общеобразовательной школы в руки и вперед, познавать так сказать.

Квадратное уравнение решить современному процессору не стоит практически ничего. Тем более, что его можно решить один раз.
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Ну и сила броска + масса = превращаются в начальную скорость.
Ответ написан
DanceM
@DanceM
Кто хочет -ищет способ, кто не хочет -ищет причину
Добавлю к предыдущим ответам.

Там как-бы и не считают, используют встроенную в сам движок физику, задают только исходные параметры, импульс силы. А движок уже считает, и если повезет, то даже на GPU, что ускоряет рассчеты в сотню раз.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 июн. 2021, в 19:09
500000 руб./за проект
18 июн. 2021, в 19:00
100000 руб./за проект
18 июн. 2021, в 18:58
6000 руб./за проект