波紋

2023-07-06

波紋

公式ドキュメントのタップにあった波紋っぽいサンプルが良かったので簡略化したものを作りました。 ソシャゲでタップ位置を示すのに使われているのを見かけます。

CircleComponent(参照)を継承して、updateradiusを変更すれば簡単に作れます。

公式ドキュメント https://docs.flame-engine.org/latest/flame/inputs/tap_events.html#demo

動かす

CircleComponentを継承したRippleを作ります。

class Ripple extends CircleComponent {
  Ripple({super.position})
      : super(
          anchor: Anchor.center,
          paint: Paint()
            ..color = Colors.white
            ..style = PaintingStyle.stroke
            ..strokeWidth = 1,
        );

  final maxRadius = 20;

  @override
  void update(double dt) {
    super.update(dt);

    radius += 30 * dt;

    if (radius > maxRadius) {
      removeFromParent();
    }
  }
}

あとはタップした位置にこれをaddするだけです。

  @override
  void onTapDown(TapDownEvent event) {
    super.onTapDown(event);

    add(
      Ripple(position: event.localPosition),
    );
  }

これで、波紋っぽい表現ができました。

© 2023 tnantoka