summaryrefslogtreecommitdiffstats
path: root/test/src/ch
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2020-06-04 23:18:15 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2020-06-04 23:18:15 +0200
commite553e2a22eac25bc7f3c0f61a8db3377be66e8e8 (patch)
treebe4c907f1c4e668c3c06d65dc588822814911a8e /test/src/ch
parentf7167d18cadb0cbe7798f524d5dd348d86bc5ec5 (diff)
downloadgdx-boardgame-e553e2a22eac25bc7f3c0f61a8db3377be66e8e8.zip
gdx-boardgame-e553e2a22eac25bc7f3c0f61a8db3377be66e8e8.tar.gz
HexScreen : drop units where mouse pointer is
Diffstat (limited to 'test/src/ch')
-rw-r--r--test/src/ch/asynk/gdx/boardgame/test/HexScreen.java32
1 files changed, 18 insertions, 14 deletions
diff --git a/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java b/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java
index b6c7f28..67fa80e 100644
--- a/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java
+++ b/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java
@@ -168,13 +168,13 @@ public class HexScreen extends AbstractScreen
public void reset()
{
+ board.centerOf(0, 0, v);
tilesToDraw.clear();
v.set(0, 0);
h0 = getHex(0, 0);
- setUnitOn(panzer, 0, 0, Orientation.DEFAULT);
+ setUnitOn(panzer, h0.x, h0.y, Orientation.DEFAULT);
h1 = getHex(8, 5);
- setUnitOn(engineer, 8, 5, Orientation.SW);
- board.centerOf(0, 0, v);
+ setUnitOn(engineer, h1.x, h1.y, Orientation.SW);
updateLine();
}
@@ -201,17 +201,9 @@ public class HexScreen extends AbstractScreen
}
} else {
if (panzer.dragging) {
- touchInfo(hex);
- board.dropInPlace(panzer, v);
- panzer.dragging = false;
- h0 = hex;
- updateLine();
+ updateUnit(hex, panzer);
} else if (engineer.dragging) {
- touchInfo(hex);
- engineer.dropOnBoard(board, v);
- engineer.dragging = false;
- h1 = hex;
- updateLine();
+ updateUnit(hex, engineer);
}
}
return true;
@@ -222,6 +214,18 @@ public class HexScreen extends AbstractScreen
GdxBoardTest.debug("BoardScreen", String.format("touchDown [%d;%d] => %s[%d]", (int)v.x, (int)v.y, hex, board.genKey((int)v.x, (int)v.y)));
}
+ private void updateUnit(Hex hex, Unit u)
+ {
+ touchInfo(hex);
+ u.centerOn(hex.cx, hex.cy);
+ u.dragging = false;
+ if (u == panzer)
+ h0 = hex;
+ else
+ h1 = hex;
+ updateLine();
+ }
+
private void updateLine()
{
float x0 = panzer.getCX();
@@ -237,7 +241,7 @@ public class HexScreen extends AbstractScreen
tile.enableOverlay(0, false);
tile.enableOverlay(2, false);
}
- board.lineOfSight(h0.x, h0.y, h1.x, h1.y, tilesToDraw);
+ board.lineOfSight(h0, h1, tilesToDraw);
for (Tile tile: tilesToDraw) {
if (tile.blocked) tile.enableOverlay(0, Orientation.N);
else tile.enableOverlay(2, Orientation.N);