Proper reset in sequence

This commit is contained in:
Lukas Klingsbo
2020-10-04 21:33:47 +02:00
parent 426cbf68e3
commit 379415af1d
3 changed files with 16 additions and 12 deletions

View File

@ -56,7 +56,7 @@ class MyGame extends BaseGame with TapDetector {
final scale = ScaleEffect( final scale = ScaleEffect(
size: Vector2(dx, dy), size: Vector2(dx, dy),
speed: 250.0, speed: 100.0,
curve: Curves.easeInCubic, curve: Curves.easeInCubic,
isInfinite: false, isInfinite: false,
isAlternating: false, isAlternating: false,
@ -72,15 +72,14 @@ class MyGame extends BaseGame with TapDetector {
final combination = CombinedEffect( final combination = CombinedEffect(
effects: [move2, rotate], effects: [move2, rotate],
isAlternating: false, isAlternating: true,
isInfinite: true,
); );
final sequence = SequenceEffect( final sequence = SequenceEffect(
effects: [move1, scale, combination], effects: [move1, scale, combination],
isInfinite: true, isInfinite: false,
isAlternating: false, isAlternating: true,
); );
greenSquare.addEffect(combination); greenSquare.addEffect(sequence);
} }
} }

View File

@ -64,10 +64,13 @@ class CombinedEffect extends PositionComponentEffect {
@override @override
void reset() { void reset() {
super.reset(); super.reset();
effects.forEach((effect) => effect.reset());
if (component != null) { if (component != null) {
component.position = originalPosition;
component.angle = originalAngle;
component.size = originalSize;
initialize(component); initialize(component);
} }
effects.forEach((effect) => effect.reset());
} }
@override @override

View File

@ -92,10 +92,12 @@ class SequenceEffect extends PositionComponentEffect {
@override @override
void reset() { void reset() {
super.reset(); super.reset();
component.position = originalPosition; effects.forEach((e) => e.reset());
component.angle = originalAngle; if(component != null) {
component.size = originalSize; component.position = originalPosition;
initialize(component); component.angle = originalAngle;
//effects.forEach((e) => e.reset()); component.size = originalSize;
initialize(component);
}
} }
} }