diff options
Diffstat (limited to 'core/src/ch/asynk/tankontank')
-rw-r--r-- | core/src/ch/asynk/tankontank/engine/Board.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index ebc1cad..b8ded2d 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -26,7 +26,9 @@ import ch.asynk.tankontank.engine.gfx.animations.RunnableAnimation; public abstract class Board implements Disposable { private final Tile neighbours[] = new Tile[6]; + // TODO class Move : from , to, paths, points, vector, cost ... protected List<ArrayList<SearchBoard.Node>> paths; + private final ArrayList<Vector3> finalPath = new ArrayList<Vector3>(10); public interface TileBuilder { @@ -111,6 +113,9 @@ public abstract class Board implements Disposable for (int i = 0, n = animations.size(); i < n; i++) animations.get(i).dispose(); animations.clear(); + for (Vector3 v : finalPath) + vector3Pool.free(v); + finalPath.clear(); } public float getWidth() @@ -422,11 +427,12 @@ public abstract class Board implements Disposable return pawn; } - protected void movePawn(final Pawn pawn, int cost, ArrayList<Vector3> path, RunnableAnimation whenDone) + protected void movePawn(final Pawn pawn, int cost, Orientation o, RunnableAnimation whenDone) { + getCoordinatePath(pawn, 0, finalPath, o); removePawn(pawn); - AnimationSequence seq = pawn.getMoveAnimation(path); + AnimationSequence seq = pawn.getMoveAnimation(finalPath); seq.addAnimation(RunnableAnimation.get(pawn, new Runnable() { @Override public void run() { |