mirror of
https://github.com/flame-engine/flame.git
synced 2025-10-31 00:48:47 +08:00
* 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>
46 lines
1.0 KiB
Dart
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());
|
|
}
|
|
}
|
|
}
|