Phaser рассчитать необходимую скорость y для данной точки y - PullRequest
0 голосов
/ 30 октября 2018

В моей мобильной игре главному герою нужно прыгнуть к определенной точке y, прежде чем снова начать падать из-за гравитации. Как я могу рассчитать скорость y, необходимую для достижения (на пике) заданной позиции y с заданной силой тяжести?

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

В настоящее время я использую Phaser 2.6.2. Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

В играх есть 2 вида времени: время цикла и время deltaTime.

В сценарии, основанном на цикле, физика не сдвигается на счет задержки, поэтому лучшее решение таково:

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

В качестве примера я буду использовать высоту = 75, гравитацию = 5 и jumpForce = неизвестно

(5 + 10 + 15 + 20 + 25) = 75

Сила прыжка, необходимая для достижения этой высоты, будет последним числом в последовательности, равным «25».

В сценарии deltaTime (как используется в данном случае) физика абстрагируется, чтобы попытаться приспособиться ко времени.

Итак, если у вас есть 5 кадров в секунду, у вас будет 5 циклов в секунду. если у вас 20 кадров в секунду, у вас будет 20 циклов в секунду; Итак, эта абстракция делает вышесказанное неуместным.

Вместо этого используйте стандартную гравитационную формулу высоты = скорости ^ 2 / (2 * гравитации)., Поскольку это будет лучше моделировать формулы, используемые двигателями с дельта-временем.

...