Гравитация с воздушным временем, ускорением и набором скорости



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

velocity += gravity * dt;
position += velocity * dt;


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

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

Это изображение иллюстрирует кривую, которую я хотел бы иметь:
Link to curve

Обратите внимание, что все управление осуществляется одной клавишей, поэтому, например, вы взлетите, если удерживаете пробел, и нырнете, если отпустите ее.
Персонаж также никогда не перемещается влево или вправо, поскольку он будет иметь статическое положение X на экране, поэтому векторы использовать нельзя.

Я часами пытался заставить это работать, но безуспешно. Я также пробовал искать в Интернете, но безуспешно.

В игре «Whale Trails» появилась гравитация, которую я хотел.
Вот ссылка на видео игры: http://www.youtube.com / watch? v = 5OQ0OWcuDJs

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

9
задан Dan J 25 November 2011 в 00:14
поделиться