summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/game/Map.java
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-09-29 23:51:20 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2014-09-29 23:51:20 +0200
commitd3b9d0f40f23d9ae6439e733a7e41c0d0a2899c3 (patch)
tree9a77056bc2741566cad5e134f7868babb754c5f0 /core/src/ch/asynk/tankontank/game/Map.java
parent6e04839bd5e0189e99d72a20d7dce6d918fb4439 (diff)
downloadRustAndDust-d3b9d0f40f23d9ae6439e733a7e41c0d0a2899c3.zip
RustAndDust-d3b9d0f40f23d9ae6439e733a7e41c0d0a2899c3.tar.gz
add lineOfSight testing code
Diffstat (limited to 'core/src/ch/asynk/tankontank/game/Map.java')
-rw-r--r--core/src/ch/asynk/tankontank/game/Map.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java
index 0406b6d..5a5f5b0 100644
--- a/core/src/ch/asynk/tankontank/game/Map.java
+++ b/core/src/ch/asynk/tankontank/game/Map.java
@@ -2,7 +2,9 @@ package ch.asynk.tankontank.game;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
+import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.GridPoint2;
+import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import ch.asynk.tankontank.engine.Board;
import ch.asynk.tankontank.engine.Pawn;
@@ -15,6 +17,9 @@ public abstract class Map extends Board
private Pawn currentPawn;
private GridPoint2 currentHex = new GridPoint2(-1, -1);
+ private GridPoint2 lineHex = new GridPoint2(-1, -1);
+ private Vector2 line0 = new Vector2(0, 0);
+ private Vector2 line1 = new Vector2(0, 0);
protected abstract void setup();
@@ -42,6 +47,7 @@ public abstract class Map extends Board
if (currentHex.x != -1) {
currentPawn = removeTopPawnFrom(currentHex);
if (currentPawn != null) pawnsToDraw.add(currentPawn);
+ line0 = getTileCenter(currentHex.x, currentHex.y);
}
}
@@ -71,6 +77,25 @@ public abstract class Map extends Board
enableOverlayOn(hex.x, hex.y, Hex.RED, true);
}
+ public void lineOfSight(float x, float y)
+ {
+ getHexAt(lineHex, x, y);
+ line1 = getTileCenter(lineHex.x, lineHex.y);
+
+ for(GridPoint2 hex : areaPoints)
+ enableOverlayOn(hex.x, hex.y, Hex.RED, false);
+
+ for(GridPoint2 hex : lineOfSight(currentHex.x, currentHex.y, lineHex.x, lineHex.y))
+ enableOverlayOn(hex.x, hex.y, Hex.RED, true);
+ }
+
+ @Override
+ public void drawDebug(ShapeRenderer debugShapes)
+ {
+ super.drawDebug(debugShapes);
+ debugShapes.line(line0.x, line0.y, line1.x, line1.y);
+ }
+
private void debugMap()
{
int o = Hex.FOG;