поэтому у меня есть эта таблица спрайтов (4 спрайта подряд и 3 в столбце), которые я использую для анимации персонажа в игре, которую я создаю. Он просто оживляет без проблем, как я хочу, чтобы
проблема начинает возникать, когда я хочу сменить состояние с «черточки» (бежать к врагу) на «атаковать» (ну, атаковать врага), похоже, он не играет спрайт атаки с самого начала ( индекс 0)
Я использовал self._currentFrame = 3 в функции set_state (self), чтобы при изменении функции сбрасывать кадр в третий кадр, что приводит к (self.currentFrame + 1)% 4, возвращающему 0
но, тем не менее, иногда это не делает то, что я хочу, и начинаю анимацию примерно с индекса 2 или 3 (конец анимации). Как мне убедиться, что моя анимация начинается с индекса 0?
мой код обновления выглядит следующим образом, если это поможет
self.frameTime += dt
if self.fps is not -1:
while self.frameTime > 1.0 / self.fps:
self.frameTime -= 1.0 / self.fps
self.currentFrame = (self.currentFrame + 1) % 4
self.currentVFrame = (self.currentVFrame + 1) % 3