Как остановить спрайтовую анимацию при запуске в движке Flutter Flame - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу визуализировать эту карту, и при первой загрузке анимация запускается один раз. То, что я хочу по умолчанию, анимация не происходит. Кто-нибудь знает, как это сделать?


    class Card extends AnimationComponent {
      Card(width, height)
          : super.sequenced(width, height, 'card.png', 5,
                textureWidth: 144.0, textureHeight: 220.0, loop: false);

    }


    class GameScreen extends BaseGame {
      GameScreen({@required this.size}) {
        add(Card(0,0));
      }
    }

1 Ответ

0 голосов
/ 24 апреля 2020

Согласно исходному коду , вы можете использовать Animation для управления кадром.

Для простоты, просто не звоните update и продолжайте рендеринг, индекс кадра не будет обновляться.

  void update(double dt) {
    clock += dt;
    elapsed += dt;
    if (isSingleFrame) {
      return;
    }
    if (!loop && isLastFrame) {
      onCompleteAnimation?.call();
      return;
    }
    while (clock > currentFrame.stepTime) {
      if (!isLastFrame) {
        clock -= currentFrame.stepTime;
        currentIndex++;
      } else if (loop) {
        clock -= currentFrame.stepTime;
        currentIndex = 0;
      } else {
        break;
      }
    }
  }

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

...