2023-05-03
以前、スプライトでは静止画を表示しましたが、 SpriteAnimationComponent
を使えばアニメーションさせることもできます。
他にも方法はありますが、images.load
で読み込んだ横並びの画像から、
SpriteAnimationData.sequenced
でサイズ・数・秒することで、1 枚の画像からアニメーションを作れます。
なお スプライトシートを使ってもアニメーションを作れます。
事前準備としてassets/images/
にexplosion.png
という横並びの画像を入れておきます。
pubspec.yaml
はスプライトで設定済みなので修正不要です。
それではSpriteAnimationComponent
を使います。
images.load
で先程の画像を読み込み、SpriteAnimationData.sequenced
で設定を渡します。
import 'package:flame/components.dart';
import 'package:flame/game.dart';
class AnimationGame extends FlameGame {
@override
Future<void> onLoad() async {
super.onLoad();
await add(
SpriteAnimationComponent.fromFrameData(
await images.load('explosion.png'),
SpriteAnimationData.sequenced(
textureSize: Vector2.all(32),
amount: 6,
stepTime: 0.2,
),
position: Vector2(size.x * 0.5, size.y * 0.5),
anchor: Anchor.center,
),
);
}
}
これで画面中央にアニメーションが描画されます。
© 2023 tnantoka