Как остановить спрайт-анимацию при запуске в игровом движке Flutter Flame
Я хочу визуализировать эту карту, и при первой загрузке анимация запускается один раз. Я хочу, чтобы по умолчанию не было анимации. Кто-нибудь знает, как это сделать?
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 ответ
Решение
Согласно исходному коду, вы сможете использовать 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
для управления анимацией спрайтов.