スプライト

2023-05-03

SpriteComponent

これまでは単色の四角や円のみを使ってきましたが、そろそろ画像を表示したくなってきました。 そんなときに使うのがスプライトです。

SpriteComponentPositionComponentの子なので基本的な使い方はこれまでと変わりません。 spriteSprite.loadした結果を指定することで、画像を表示することができます。

公式ドキュメント https://docs.flame-engine.org/latest/flame/components.html#spritecomponent
APIリファレンス https://pub.dev/documentation/flame/latest/components/SpriteComponent-class.html

描画する

事前準備としてassets/images/asteroid.pngという画像を入れておきます。

画像を使えるようにpubspec.yamlに設定します。

  assets:
    - assets/images/

これで準備は OK なので、SpriteComponentを使います。 Sprite.loadで先程の画像を読み込み、SpriteComponentspriteに指定しています。

import 'package:flame/components.dart';
import 'package:flame/game.dart';

class SpriteGame extends FlameGame {
  @override
  Future<void> onLoad() async {
    super.onLoad();

    final sprite = await Sprite.load('asteroid.png');
    await add(
      SpriteComponent(
        position: Vector2(size.x * 0.5, size.y * 0.5),
        anchor: Anchor.center,
        sprite: sprite,
      ),
    );
  }
}

これで画面中央に画像が描画されます。

© 2023 tnantoka