Remove Effect¶
This is a simple effect that can be attached to a component causing it to be removed from the game tree after the specified delay has passed:
remove_effect.dart
1import 'package:doc_flame_examples/ember.dart';
2import 'package:flame/components.dart';
3import 'package:flame/effects.dart';
4import 'package:flame/events.dart';
5import 'package:flame/game.dart';
6
7class RemoveEffectGame extends FlameGame with TapDetector {
8 static const double delayTime = 3;
9 late EmberPlayer ember;
10 late TextComponent textComponent;
11 final RemoveEffect effect = RemoveEffect(delay: delayTime);
12
13 @override
14 Future<void> onLoad() async {
15 add(
16 ember = EmberPlayer(
17 position: size / 2,
18 size: Vector2(45, 40),
19 )..anchor = Anchor.center,
20 );
21 add(textComponent = TextComponent()..position = Vector2.all(5));
22 }
23
24 @override
25 void onTap() {
26 if (children.contains(ember)) {
27 ember.add(effect);
28 } else {
29 effect.reset();
30 add(ember);
31 }
32 }
33
34 @override
35 void update(double dt) {
36 textComponent.text = (effect.controller.progress * delayTime)
37 .toStringAsFixed(2);
38 super.update(dt);
39 }
40}
component.add(RemoveEffect(delay: 3.0));
The content on this page is licensed under the CC BY 4.0 License,
and code samples under the MIT License.