1
class MyGame extends BaseGame with HasTapableComponents {
  SpriteAnimationComponent girl = SpriteAnimationComponent();

  MyGame();
  @override
  Future<void> onLoad() async {
    final sprites = [0, 1, 2,3,4,5,6,7,8,9]
      .map((i) async => await Sprite.load('Attack__00$i.png'))
      .toList();
    girl = SpriteAnimationComponent(
      animation: SpriteAnimation.spriteList(sprites, stepTime: 0.01),
      size: Vector2.all(100) 
    );
    add(girl);
    print(size);
  }
}

SpriteAnimationComponent 的实现参考了 Flutter Flame 的 github 文档, animation: SpriteAnimation.spriteList(sprites, ...). 我注意到这里的问题是这sprites是一个未来的精灵列表,而 spriteList 需要一个精灵列表。这是文档中的问题,还是我在某个地方出错了?

4

1 回答 1

1

您必须等待未来精灵列表实现,如下所示:

final sprites = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      .map((i) => Sprite.load('Attack__00$i.png'));
final animation = SpriteAnimation.spriteList(
  await Future.wait(sprites),
  stepTime: 0.01,
);
girl = SpriteAnimationComponent(
  animation: animation,
  size: Vector2.all(100) 
);
add(girl);

编辑:我可以在文档中看到它是错误的,我会更新它们。

于 2021-07-06T08:29:43.830 回答