2023-06-23
FlameGame の外で Flame のスプライトを使いたいことがあります。 例えば UI を普通の Flutter で作っていて、その中でキャラを表示したい場合などです。
SpriteWidget
を使えば、スプライトを Widget として配置できます。
ちなみに、Flutter 製のゲームフレームワークの 1 つ SpriteWidget とは関係ありません。
これも Flame とは関係ない話ですが、Flame を使ってないアプリでもスプライト画像から Wiget を作りたくなることがあるので、そのためのSpriteというパッケージを開発して公開しています。スプライトを表示するだけの軽量ライブラリです。
公式ドキュメント https://docs.flame-engine.org/latest/flame/other/widgets.html#spritewidget今回は FlameGame は使わず普通の Widget です。
静止画像の場合はこのように書きます。
SizedBox(
height: 64,
width: 64,
child: SpriteWidget.asset(path: 'asteroid.png'),
),
アニメーションの場合はこうです。
SizedBox(
height: 64,
width: 64,
child: SpriteAnimationWidget.asset(
path: 'explosion.png',
data: SpriteAnimationData.sequenced(
textureSize: Vector2.all(32),
amount: 6,
stepTime: 0.2,
),
),
),
SizedBox
で大きさを指定している以外は、どちらもスプライトやアニメーションと同様の使い方です。
これで Flutter の UI の中に Flame のスプライトを埋め込むことができました。
© 2023 tnantoka