Как правильно обработать посадочную часть в анимации прыжка

16

Посмотрите на этот лист спрайтов.

Megaman

Понятно, что кадры 1-3 - это кадры «прыжка вверх», после которых последний кадр будет зафиксирован до «пика» скачка (когда гравитация начнет тянуть назад). При движении назад вниз используются кадры 4-7, и все это заканчивается «холостым» кадром (который здесь не показан в этом спрайте перехода).

Мой вопрос о кадрах 6 и 7 в этом спрайте. Когда объект "приземляется" после прыжка, предполагается запустить анимацию 6-7 в качестве анимации "приземления". При перемещении вниз в кадре перехода 4-5 легко, потому что они являются «началом» анимации. Кадр 5 можно сохранить до тех пор, пока вы упадете ... но как правильно перейти от кадра 5 к 6-7-х? Вы проверяете, является ли кадр после следующего падением, а затем «инициируете» посадку, или вы делаете это, когда вы действительно падаете на землю?

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

Есть идеи?

sPirc
источник

Ответы:

17

Я предполагаю, что обычный подход состоит в том, чтобы иметь три связанных с прыжком состояния: Прыжок (герой поднимается на самую высокую точку прыжка), Падение (от самой высокой точки прыжка на землю), Приземление (прыжок заканчивается, когда герой стоит на земле). ).

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

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

EnoughTea
источник
+1. Хороший вопрос о штатах. Из состояний вы можете выяснить другие детали / режимы.
Кромстер говорит, что поддерживает Монику
5

Я видел это сделано двумя способами:

  1. Когда ограничивающий прямоугольник впервые столкнется с землей, сделайте быстрый переход 5-> 6-> 7.
  2. Имейте вторую «призрачную» ограничивающую рамку, которая простирается на небольшую часть ниже фактической ограничивающей рамки, чтобы инициировать 5-> 6, затем при действительном столкновении ограничительной рамки делайте 6-> 7.
Адриан Сили
источник
Понравилось 2-е дело. Кажется очень гибким, потому что ограничивающий прямоугольник может быть установлен далеко в зависимости от скорости персонажа!
Пек
Интересный подход Nbr 2. Я никогда не заканчивал тем, что пробовал это, но я буду помнить это, спасибо.
sPirc