В 2D бесконечном бегуне, что должно произойти, когда игрок бежит слишком быстро по склону и прыгает?
Например, в «нормальном» случае:
.O.
. __..O_____
. /
. /
O/
_/
Если он движется вправо достаточно медленно, он подпрыгнет вверх и приземлится на ровную часть поверхности. Однако, если он движется слишком быстро, прыжок не будет иметь никакого эффекта, поскольку его поступательное движение вернет его назад к склону, прежде чем он сможет подняться достаточно высоко, чтобы пройти над ним. Когда скорость достаточно высока, прыжка практически не будет.
_________
/
.O/
O/
_/
Есть ли известные способы решения этой проблемы? Я знаю, что это физически правильно *, но существуют ли методы, которые другие игры используют, чтобы преодолеть это разумным образом?
В крайнем случае мне придется просто удалить все наклонные склоны.
* Если вы заставляете игрока никогда не прыгать назад.
Ответы:
Вот несколько примеров того, как игры (раннер или другие) справились с этой ситуацией. «Лучшего» не существует, и вам все равно нужно решить, какой из них подходит для вашей игры.
Физически «правильный» путь (вертикальный импульс)
Чтобы прыгать, вы добавляете вертикальный импульс (красный) к скорости вашего движения (зеленый) . Результирующая скорость (синий) всегда будет считать вас выше по склону, так долго , как ваш склон не слишком много круче в ближайшее время , ваш персонаж всегда будет прыгать выше по склону.
Предостережение заключается в том, что если ваш персонаж взбирается по крутому склону, теперь вы можете прыгать очень высоко.
Перпендикулярные прыжки (Соник)
При прыжке импульс прыжка находится в направлении (красный), перпендикулярном склону (зеленый) . Вы можете помнить это поведение из игр Sonic.
Предостережение заключается в том, что на очень крутых склонах вы часто заканчиваете прыжками назад.
Не прыгать на склонах
Может быть, вы решили, что склоны особенные, и прыгать на них не имеет смысла. Например, лестница - это особый вид склона, по которому в некоторых играх вообще нельзя прыгать.
Предостережение заключается в том, что всякий раз, когда вы отнимаете контроль у игрока, подобного этому, вы должны четко сообщить свои ожидания, иначе игрок может расстроиться. Например, Castlevania использует специальную анимацию «подъема по лестнице», чтобы прояснить, что это особый вид движения.
На крутых склонах не бегать
Другой вариант - сделать невозможным подъем по слишком крутым склонам - игроки скользят вниз, как будто это препятствие, похожее на стену. Поскольку они падают или сползают вниз, ясно, что они не могут прыгать в течение этого времени.
Нет крутых (вверх) склонов
Вы могли бы выбрать легкий путь и полностью убрать склоны, которые могут вызвать такие проблемы. Это не такая плохая идея, как кажется, потому что ходить по склонам не весело; спускаться по склонам намного интереснее!
Нет склонов (Му ответ)
Когда дело доходит до игрового процесса, я фанат минималистического дизайна - как говорится, «совершенство наконец достигается не тогда, когда больше нечего добавить, а когда уже нечего убрать». Склоны служат полезной цели игрового процесса, или они просто хорошо выглядят - то есть они забавны ? В конце концов, прекрасно иметь бегуна без уклонов вообще.
источник
Для всех, кто сталкивался с этим, я справился с этим, имея минимальное количество кадров, которые должны пройти в анимации прыжка, прежде чем будет зарегистрировано столкновение с холмом. Таким образом, у вас есть льготный период, чтобы персонаж мог немного встать, не беспокоясь о столкновении на склоне.
источник
Raycast - хорошая идея, вы можете использовать Ray Judge, если это наклон, тогда вы можете контролировать скорость, изменяя скорость игрока.
источник