diff options
5 files changed, 40 insertions, 28 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/animations/AnimationSequence.java b/core/src/ch/asynk/gdx/boardgame/animations/AnimationSequence.java index 88bb15b..8aa6b06 100644 --- a/core/src/ch/asynk/gdx/boardgame/animations/AnimationSequence.java +++ b/core/src/ch/asynk/gdx/boardgame/animations/AnimationSequence.java @@ -2,7 +2,6 @@ package ch.asynk.gdx.boardgame.animations; import com.badlogic.gdx.utils.Pool; import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import ch.asynk.gdx.boardgame.utils.IterableArray; @@ -76,9 +75,4 @@ public class AnimationSequence implements Animation, Pool.Poolable animations.get(0).draw(batch); } } - - @Override public void drawDebug(ShapeRenderer debugShapes) - { - animations.get(0).drawDebug(debugShapes); - } } diff --git a/core/src/ch/asynk/gdx/boardgame/animations/BounceAnimation.java b/core/src/ch/asynk/gdx/boardgame/animations/BounceAnimation.java index 271728c..432d0d7 100644 --- a/core/src/ch/asynk/gdx/boardgame/animations/BounceAnimation.java +++ b/core/src/ch/asynk/gdx/boardgame/animations/BounceAnimation.java @@ -4,11 +4,10 @@ import java.lang.Math; import com.badlogic.gdx.utils.Pool; import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import ch.asynk.gdx.boardgame.pieces.Piece; -public class BounceAnimation extends TimedAnimation +public class BounceAnimation extends TimedAnimation implements Pool.Poolable { private static final Pool<BounceAnimation> bounceAnimationPool = new Pool<BounceAnimation>() { @@ -40,14 +39,6 @@ public class BounceAnimation extends TimedAnimation { } - public BounceAnimation(Piece piece, float duration, float bounceFactor, int rotations) - { - this.piece = piece; - this.bounceFactor = bounceFactor; - this.setDuration(duration); - this.computeRotationDegrees(rotations); - } - private void computeRotationDegrees(int rotations) { if (rotations == 0) { @@ -57,6 +48,11 @@ public class BounceAnimation extends TimedAnimation } } + @Override public void reset() + { + super.reset(); + } + @Override public void dispose() { bounceAnimationPool.free(this); @@ -88,8 +84,4 @@ public class BounceAnimation extends TimedAnimation { piece.draw(batch); } - - @Override public void drawDebug(ShapeRenderer debugShapes) - { - } } diff --git a/core/src/ch/asynk/gdx/boardgame/animations/DelayAnimation.java b/core/src/ch/asynk/gdx/boardgame/animations/DelayAnimation.java index 8baa9b1..0d20cae 100644 --- a/core/src/ch/asynk/gdx/boardgame/animations/DelayAnimation.java +++ b/core/src/ch/asynk/gdx/boardgame/animations/DelayAnimation.java @@ -1,23 +1,49 @@ package ch.asynk.gdx.boardgame.animations; +import com.badlogic.gdx.utils.Pool; import com.badlogic.gdx.graphics.g2d.Batch; import ch.asynk.gdx.boardgame.Drawable; -public class DelayAnimation extends TimedAnimation +public class DelayAnimation extends TimedAnimation implements Pool.Poolable { + private static final Pool<DelayAnimation> delayAnimationPool = new Pool<DelayAnimation>() + { + @Override protected DelayAnimation newObject() + { + return new DelayAnimation(); + } + }; + + public static DelayAnimation get(Drawable drawable, float duration) + { + DelayAnimation a = delayAnimationPool.obtain(); + + a.drawable = drawable; + a.setDuration(duration); + + return a; + } + private Drawable drawable; - public DelayAnimation(Drawable drawable, float duration) + private DelayAnimation() + { + } + + @Override public void reset() + { + super.reset(); + } + + @Override public void dispose() { - this.drawable = drawable; - setDuration(duration); + delayAnimationPool.free(this); } @Override protected void begin() { } @Override protected void end() { } @Override protected void update(float percent) { } - @Override public void dispose() { } @Override public void draw(Batch batch) { diff --git a/core/src/ch/asynk/gdx/boardgame/animations/TimedAnimation.java b/core/src/ch/asynk/gdx/boardgame/animations/TimedAnimation.java index 9540507..3d35dd9 100644 --- a/core/src/ch/asynk/gdx/boardgame/animations/TimedAnimation.java +++ b/core/src/ch/asynk/gdx/boardgame/animations/TimedAnimation.java @@ -2,7 +2,7 @@ package ch.asynk.gdx.boardgame.animations; import com.badlogic.gdx.utils.Pool; -public abstract class TimedAnimation implements Animation, Pool.Poolable +public abstract class TimedAnimation implements Animation { private float dp; private float percent; @@ -16,7 +16,7 @@ public abstract class TimedAnimation implements Animation, Pool.Poolable dp = 1f / duration; } - @Override public void reset() + public void reset() { percent = 0f; } diff --git a/test/src/ch/asynk/gdx/boardgame/test/AnimationsScreen.java b/test/src/ch/asynk/gdx/boardgame/test/AnimationsScreen.java index caeabda..fc8f0c1 100644 --- a/test/src/ch/asynk/gdx/boardgame/test/AnimationsScreen.java +++ b/test/src/ch/asynk/gdx/boardgame/test/AnimationsScreen.java @@ -43,7 +43,7 @@ public class AnimationsScreen extends AbstractScreen animations = AnimationSequence.get(10); animations.add(BounceAnimation.get(panzer, 2f, 3f, -1)); - animations.add(new DelayAnimation(panzer, 1f)); + animations.add(DelayAnimation.get(panzer, 1f)); } @Override public void dispose() |