Flutter:从许多图像的列表创建动画

ttp71kqs  于 2023-03-09  发布在  Flutter
关注(0)|答案(1)|浏览(187)

我有50张图片,每一张都代表一个动画的状态,间隔很短。就像一个小精灵,显示一个小家伙挥舞斧头。
我需要做一件很简单的事:在flutter中创建一个动画来显示这个动画。
我找到了两个解决方案:

但是我担心对于这么短的时间间隔来说这太慢了?

但对于我的简单使用情形来说,它似乎设计过度了
在Flutter中,正确的方法是什么,并有一个平滑的动画?

polkgigr

polkgigr1#

您可以使用Flame的SpriteAnimationWidget来实现此目的。
由于Flutter有树摇你不必担心火焰是一个大图书馆,一切你不使用将被清理掉,当你建立你的应用程序。
要使用SpriteAnimationWidget simple,请执行以下操作:

SpriteAnimationWidget.asset(
  path: 'your_spritesheet.png',
  data: SpriteAnimationData.sequenced(
    amount: 50,
    stepTime: 0.1,
    textureSize: Vector2(32, 32),
  ),
);

这是如果你的50个图像在一个spritesheet中,如果他们不在,你可以这样做:

final sprites = images.map((image) => Sprite(image)).toList();
SpriteAnimationWidget(
  animation: SpriteAnimation.spriteList(
    sprites,
    stepTime: 0.1,
  ),
);

其中imagesImage对象的列表。
0.1在这两个示例中,都是帧之间的时间,因此如果为0.1,则将以每秒10帧的速度设置动画。
在这里您可以看到它运行的示例:
https://examples.flame-engine.org/#/Widgets_Sprite%20Animation%20Widget

相关问题