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

View File

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

View File

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