発光

2023-05-26

GlowEffect

以前も使った エフェクト の 1 つであるGlowEffectを使うと、コンポーネントを発光させることができます。

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

なお、このエフェクトは以下の注意書きがあり、今後 API が変更される可能性があるようです。 ここではバージョン1.14.0で動作することを確認しています。

This effect is currently experimental, and its API may change in the future.

描画する

CircleComponentGlowEffectを追加しています。

infiniteを設定することでエフェクトを繰り返します。 また、reverseDurationで逆再生する際の秒数を設定しています。

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

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

    final circle = CircleComponent(
      position: Vector2(size.x * 0.5, size.y * 0.5),
      radius: 100,
      anchor: Anchor.center,
      paint: BasicPalette.white.paint(),
    );

    await add(circle);

    final effect = GlowEffect(
      30.0,
      EffectController(
        duration: 3,
        reverseDuration: 3,
        infinite: true,
      ),
    );
    circle.add(effect);
  }
}

これで発光表現ができました。

© 2023 tnantoka