Я пытаюсь найти лучший способ создания анимации с несколькими состояниями, но я не могу найти какие-либо примеры чистого способа достижения того, чего я добиваюсь.
У меня есть спрайт-лист для персонажа, у которого есть два состояния анимации прыжка, есть 6 кадров, в которых анимация персонажа по сути прыгает с земли.
Есть еще 6 кадров, в которых персонаж находится в «прыжковой петле», поэтому персонаж уже оторвался от земли, но руки и т. Д. Слегка двигаются.
Когда я помещаю все изображения в список и перебираю их, начальная часть прыжка выглядит хорошо, потому что персонаж поднимается с земли и затем входит в цикл прыжка. Но как только последовательность кадров прыжковой петли завершена, анимация возвращается к стартовому полету, поэтому кажется, что персонаж просто прыгает с чего-то.
Код для функции, которую я имею до сих пор, выглядит следующим образом
def animate(self):
now = pg.time.get_ticks()
# Jumping
if self.jumping:
if now - self.last_update > 18:
self.last_update = now
if self.left:
self.current_frame = (self.current_frame + 1) % len(self.jump_l)
bottom = self.rect.midbottom
self.image = self.jump_l[self.current_frame]
self.rect = self.image.get_rect()
elif self.right:
self.current_frame = (self.current_frame + 1) % len(self.jump_r)
bottom = self.rect.midbottom
self.image = self.jump_r[self.current_frame]
self.rect = self.image.get_rect()
self.rect.midbottom = bottom
Анимация работает, но, по сути, я хочу сделать только то, как первые 6 кадров, а затем циклы по последним 6 кадрам, пока персонаж не приземлится.