Я пытаюсь создать силу тяжести, в которую включено эфирное время, а также ускорение.
Я пробовал использовать обычную гравитацию, которая выглядит примерно так:
velocity += gravity * dt;
position += velocity * dt;
Это, вероятно, сработает достаточно хорошо для обычной платформерной игры, но я пытаюсь создать игру, вдохновленную «игрой о вертолете», где у вас есть перемещаться по туннелю, не касаясь стен.
что я хочу сделать иначе, так это то, что я хочу иметь возможность сохранять скорость на спуске, которая будет использоваться снова на пути вверх, так что у меня будет некоторое ускорение в начале.
Мне также нужно какое-то эфирное время, чтобы, когда вы попадаете на вершину, это не заставляло бы вас опускаться так быстро, как если бы я использовал гравитацию из примера кода.
Это изображение иллюстрирует кривую, которую я хотел бы иметь:
Обратите внимание, что все управление осуществляется одной клавишей, поэтому, например, вы взлетите, если удерживаете пробел, и нырнете, если отпустите ее.
Персонаж также никогда не перемещается влево или вправо, поскольку он будет иметь статическое положение X на экране, поэтому векторы использовать нельзя.
Я часами пытался заставить это работать, но безуспешно. Я также пробовал искать в Интернете, но безуспешно.
В игре «Whale Trails» появилась гравитация, которую я хотел.
Вот ссылка на видео игры: http://www.youtube.com / watch? v = 5OQ0OWcuDJs
Я не такой уж большой физик, поэтому было бы здорово, если бы вы могли привести пример реального кода
. Надеюсь, кто-нибудь поможет мне разобраться в этом.