summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-10-10 08:58:26 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2014-10-10 08:58:26 +0200
commitc7a5eade2b1f0bc168a6b31b9426c2b270972f41 (patch)
tree62b6c32693bc1a2a16d4138d4215e7cda20b6ff1 /core/src/ch/asynk/tankontank
parentad12a84586d0d0c7f6f0f74e7c6c44c16a1b290d (diff)
downloadRustAndDust-c7a5eade2b1f0bc168a6b31b9426c2b270972f41.zip
RustAndDust-c7a5eade2b1f0bc168a6b31b9426c2b270972f41.tar.gz
Pawn: add prevPosition, revertPosition(), getRevertLastMoveAnimation()
Diffstat (limited to 'core/src/ch/asynk/tankontank')
-rw-r--r--core/src/ch/asynk/tankontank/engine/Pawn.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Pawn.java b/core/src/ch/asynk/tankontank/engine/Pawn.java
index 15e4200..6fe1540 100644
--- a/core/src/ch/asynk/tankontank/engine/Pawn.java
+++ b/core/src/ch/asynk/tankontank/engine/Pawn.java
@@ -25,6 +25,7 @@ public abstract class Pawn implements Drawable, Disposable
private static final float MOVE_TIME = 0.4f;
private Vector3 position = new Vector3(0f, 0f, 0f);
+ private Vector3 prevPosition = new Vector3(0f, 0f, 0f);
private Image image;
private StackedImages overlays;
@@ -70,6 +71,17 @@ public abstract class Pawn implements Drawable, Disposable
return position;
}
+ public Vector3 getPreviousPosition()
+ {
+ return prevPosition;
+ }
+
+ private void revertPosition()
+ {
+ position.set(prevPosition);
+ prevPosition.set(0f, 0f, 0f);
+ }
+
public Vector2 getCenter()
{
float x = (image.getX() + (image.getWidth() / 2f));
@@ -160,8 +172,25 @@ public abstract class Pawn implements Drawable, Disposable
return seq;
}
+ public AnimationSequence getRevertLastMoveAnimation()
+ {
+ AnimationSequence seq = AnimationSequence.get(4);
+ seq.addAnimation(MoveToAnimation.get(this, prevPosition, MOVE_TIME));
+ seq.addAnimation(RunnableAnimation.get(this, new Runnable() {
+ @Override
+ public void run() {
+ revertPosition();
+ setPosition(position.x, position.y, position.z);
+ }
+ }));
+
+ return seq;
+ }
+
public AnimationSequence getMoveAnimation(ArrayList<Vector3> path)
{
+ prevPosition.set(position);
+
int s = path.size();
final Vector3 finalPos = path.get(s - 1);