Files
flame/examples/lib/stories/effects/opacity_effect.dart
Erick b2ea597734 Initial implementation of paint effects (#880)
* Initial implementation of paint effects

* Improving HasPaint

* Adding color effect

* Adding exaustive tests for the HasPaint mixin

* Adding tests for the effects

* some adjustments

* Fixing some imports

* Adding docs

* Adding types to the has paint mixin

* Fixing constructor name for the opacity effect

* Apply suggestions from code review

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* Luan's suggestion

* Luan's comments

* formatting issues

* dartcodemetrics don't help me :(

* Adding assert

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-07-31 15:58:52 -03:00

46 lines
1.0 KiB
Dart

import 'package:flame/components.dart';
import 'package:flame/effects.dart';
import 'package:flame/game.dart';
import 'package:flame/input.dart';
class OpacityEffectGame extends BaseGame with TapDetector {
late final SpriteComponent sprite;
@override
Future<void> onLoad() async {
final flameSprite = await loadSprite('flame.png');
add(
sprite = SpriteComponent(
sprite: flameSprite,
position: Vector2.all(100),
size: Vector2(149, 211),
),
);
add(
SpriteComponent(
sprite: flameSprite,
position: Vector2(300, 100),
size: Vector2(149, 211),
)..addEffect(
OpacityEffect(
opacity: 0,
duration: 0.5,
isInfinite: true,
isAlternating: true,
),
),
);
}
@override
void onTap() {
final opacity = sprite.paint.color.opacity;
if (opacity == 1) {
sprite.addEffect(OpacityEffect.fadeOut());
} else if (opacity == 0) {
sprite.addEffect(OpacityEffect.fadeIn());
}
}
}