Построение точек для снаряда перед применением силы - PullRequest
1 голос
/ 09 августа 2010

Например, в Peggle или Apple Jack пользователь может передвигаться по кривой, показывающей, куда собирается шарик (или стиральная машина / панда или что-то еще), прежде чем пользователь запросит запуск снаряда. Я знаю, что мне нужно использовать уравнение для построения точек, но я не математик (больше :(). Кто-нибудь может быть настолько любезен, чтобы предоставить мне правильное уравнение и сказать мне, что я должен заменить, чтобы получить мой X любой Значения Y с учетом определенного времени и начальной скорости.

Ответы [ 4 ]

2 голосов
/ 10 августа 2010

Посмотрите на мой ответ на этот вопрос .

Исходя из этого ответа, формула, которую вы должны использовать:

s = s₀ + v₀t + ½at²

(Смещение равно: начальное смещение, плюс начальная скорость, умноженная на время, плюс половина ускорения, умноженная на квадрат времени.)

Все, кроме времени, есть вектор (ускорение будет вашей гравитацией вниз).Поэтому просто используйте это уравнение как на оси X, так и на оси Y.

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

Если ваша настоящая игра использует что-то другое (например, полный симулятор физики), и вам не нужно прогнозировать отскоки, и выне должны быть абсолютно точными - тогда это даст вам подходящее приближение для прогноза.

2 голосов
/ 09 августа 2010

Имитация, вероятно, будет самым простым маршрутом для спуска: создайте фиктивный объект с указанными свойствами и создайте цикл, чтобы применить силы и, скажем, вывести позиции в массив, а затем отобразить его, скажем,: проведите линию между позициями или нарисуйте «призрак» снаряда в каждой позиции.

Положительным моментом в симуляции является то, что вы можете контролировать баланс скорости и точности, изменяя частоту записи позиций.

1 голос
/ 09 августа 2010

Если это снаряд, следующий по простой баллистической траектории, вы можете использовать приведенные здесь выражения в замкнутой форме:

http://en.wikipedia.org/wiki/Trajectory_of_a_projectile

Если нет, то может быть намного проще имитировать воздействие всех сил на тело для каждого (небольшого) временного шага, соответственно обновляя его положение и скорость. Эта техника более надежна; Вы можете значительно усложнить задачу, не меняя основной методологии.

0 голосов
/ 09 августа 2010

Вы можете использовать метод Ньютона ок. Решение. Проблема здесь в том, что вам нужно интегрировать - поэтому вы должны определить компромисс между точностью и временем расчета.

RK4 - это лучший на мой взгляд метод - он быстрый и все еще очень точный.

Вы можете прочитать больше информации на http://gafferongames.com/game-physics/integration-basics/

...