Как справиться с прыжками вверх по склону в раннер-игре?

8

В 2D бесконечном бегуне, что должно произойти, когда игрок бежит слишком быстро по склону и прыгает?

Например, в «нормальном» случае:

    .O.
   . __..O_____
  . /
 . /
 O/
_/

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

     _________
    /
 .O/
 O/
_/

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

В крайнем случае мне придется просто удалить все наклонные склоны.

* Если вы заставляете игрока никогда не прыгать назад.

you786
источник
Похоже, что переход от ровной поверхности к крутому склону замедлит игрока настолько, что он сможет совершить прыжок. Если они хотят сохранить свою скорость, они прыгнут до склона. Просто к вашему сведению, я думаю, что ваш вопрос является своего рода вопросом типа «помогите мне решить», что делает его своего рода основанным на мнении.
MichaelHouse
@ Byte56 Возможно, какое-то мнение может войти в микс, но я думаю, что это все еще хороший вопрос. Некоторые из лучших вопросов на этом сайте имеют мнение о них. Хороший ответ может указать на поставленные решения.
Kevintodisco
@ Ktodisco Я согласен, ответы могут превратить пограничный вопрос в отличный. (Хотя последний из ваших примеров закрыт, это правильно).
MichaelHouse
Одна из возможностей, которую, как мне кажется, я видел (я знаю, что это не особенно убедительно), может заключаться в том, чтобы сделать направление прыжка относительно угла земли под вами, так что прыжок на нисходящем склоне даст вам некоторый импульс вперед, но не прыгайте как высоко, в то время как прыжок на восходящем склоне отправит вас выше с уменьшенным импульсом движения вперед (представьте, что прыжок отталкивает от земли)
Tin Wizard,
@ Amadeus9 это хороший момент, но я думаю, что в этом конкретном случае я бы не подал заявку. Снижение скорости при прыжке все равно в конечном итоге приведет к столкновению на склоне, поскольку скорость увеличивается без ограничений.
you786

Ответы:

11

Вот несколько примеров того, как игры (раннер или другие) справились с этой ситуацией. «Лучшего» не существует, и вам все равно нужно решить, какой из них подходит для вашей игры.

Физически «правильный» путь (вертикальный импульс)

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

крошечные крылья

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

Перпендикулярные прыжки (Соник)

При прыжке импульс прыжка находится в направлении (красный), перпендикулярном склону (зеленый) . Вы можете помнить это поведение из игр Sonic.

звуковой

Предостережение заключается в том, что на очень крутых склонах вы часто заканчиваете прыжками назад.

Не прыгать на склонах

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

Castlevania 3

Предостережение заключается в том, что всякий раз, когда вы отнимаете контроль у игрока, подобного этому, вы должны четко сообщить свои ожидания, иначе игрок может расстроиться. Например, Castlevania использует специальную анимацию «подъема по лестнице», чтобы прояснить, что это особый вид движения.

На крутых склонах не бегать

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

Нет крутых (вверх) склонов

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

лыжное сафари

Нет склонов (Му ответ)

Когда дело доходит до игрового процесса, я фанат минималистического дизайна - как говорится, «совершенство наконец достигается не тогда, когда больше нечего добавить, а когда уже нечего убрать». Склоны служат полезной цели игрового процесса, или они просто хорошо выглядят - то есть они забавны ? В конце концов, прекрасно иметь бегуна без уклонов вообще.

Canabalt

congusbongus
источник
Спасибо за подробный ответ. Для справки, я в итоге убрал все крутые склоны.
you786
1

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

Даниэль Кил
источник
-1

Raycast - хорошая идея, вы можете использовать Ray Judge, если это наклон, тогда вы можете контролировать скорость, изменяя скорость игрока.

FengYi Ya
источник
Вы могли бы значительно улучшить этот ответ, объяснив, как .