2023-07-06
公式ドキュメントのタップにあった波紋っぽいサンプルが良かったので簡略化したものを作りました。 ソシャゲでタップ位置を示すのに使われているのを見かけます。
CircleComponent(円参照)を継承して、update
でradius
を変更すれば簡単に作れます。
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