From 379415af1df43a57a3e1122973ceee289ff1bce3 Mon Sep 17 00:00:00 2001 From: Lukas Klingsbo Date: Sun, 4 Oct 2020 21:33:47 +0200 Subject: [PATCH] Proper reset in sequence --- doc/examples/effects/sequence_effect/lib/main.dart | 11 +++++------ lib/effects/combined_effect.dart | 5 ++++- lib/effects/sequence_effect.dart | 12 +++++++----- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/doc/examples/effects/sequence_effect/lib/main.dart b/doc/examples/effects/sequence_effect/lib/main.dart index abdefac93..f6b831d97 100644 --- a/doc/examples/effects/sequence_effect/lib/main.dart +++ b/doc/examples/effects/sequence_effect/lib/main.dart @@ -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); } } diff --git a/lib/effects/combined_effect.dart b/lib/effects/combined_effect.dart index e869877c6..c55d1e6bf 100644 --- a/lib/effects/combined_effect.dart +++ b/lib/effects/combined_effect.dart @@ -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 diff --git a/lib/effects/sequence_effect.dart b/lib/effects/sequence_effect.dart index 66ed7c43a..884659057 100644 --- a/lib/effects/sequence_effect.dart +++ b/lib/effects/sequence_effect.dart @@ -92,10 +92,12 @@ class SequenceEffect extends PositionComponentEffect { @override void reset() { super.reset(); - component.position = originalPosition; - component.angle = originalAngle; - component.size = originalSize; - initialize(component); - //effects.forEach((e) => e.reset()); + effects.forEach((e) => e.reset()); + if(component != null) { + component.position = originalPosition; + component.angle = originalAngle; + component.size = originalSize; + initialize(component); + } } }