Wall Jump для 2D-платформера

14

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

dbomb101
источник

Ответы:

21

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

хаос
источник
3
Я думаю, что вам нужно изменить первое предложение: «Когда игрок сталкивается со стеной (в то время как он прыгает) ...», иначе игрок мог бы прыгать со стены, оставаясь неподвижным на земле рядом со стеной, что не было бы ожидается.
CiscoIPPhone
@CiscoIPPhone: Да, спасибо. Это произвело бы странное изменение поведения между 100 мс после столкновения и позже.
хаос
2

Я, честно говоря, только что сделал проверку. Так:

if (falling AND left_key_pressed AND !point_free(x-1,y))
    doWallJump

Вы можете изменить y на y + sprite_width / 2 (или - в зависимости от вашей системы координат), чтобы он проверял слева от середины ваш спрайт вместо верхнего (или нижнего). Вот как N реализует проверку стены на прыжки со стены (последний абзац) .

После этого вы должны решить, насколько сильно вы хотите, чтобы ваша стена прыгнула. Если вертикальная скорость вашего прыжка превысит горизонтальную, прежде чем игрок сможет снова добраться до той же стены, вы не сможете прыгнуть через стену вверх по той же стене и постепенно упадете обратно (как в играх Mario с прыжками со стены). ). Если вы позволите горизонтали быть достаточно слабой, чтобы игрок мог вернуться к стене, он / она сможет продвигаться вверх по стене (как в Meat Boy).

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

Джефф
источник