From f7264e865d49673df59c6f8f08e323db41f8894b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Sun, 21 Sep 2014 10:06:53 +0200 Subject: update Map,Hex,Unit extends Board,Tile,Pawn fix GameScreen --- core/src/ch/asynk/tankontank/game/GameFactory.java | 18 +++++----- core/src/ch/asynk/tankontank/game/Hex.java | 4 +-- core/src/ch/asynk/tankontank/game/Map.java | 41 ++++++++++++++++++++++ core/src/ch/asynk/tankontank/game/Unit.java | 4 +-- .../ch/asynk/tankontank/screens/GameScreen.java | 4 +-- 5 files changed, 54 insertions(+), 17 deletions(-) create mode 100644 core/src/ch/asynk/tankontank/game/Map.java diff --git a/core/src/ch/asynk/tankontank/game/GameFactory.java b/core/src/ch/asynk/tankontank/game/GameFactory.java index f8b05ea..e271f4b 100644 --- a/core/src/ch/asynk/tankontank/game/GameFactory.java +++ b/core/src/ch/asynk/tankontank/game/GameFactory.java @@ -5,9 +5,7 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import ch.asynk.tankontank.engine.Map; -import ch.asynk.tankontank.engine.MapNode; -import ch.asynk.tankontank.engine.Tile; +import ch.asynk.tankontank.engine.Board; public class GameFactory { @@ -109,9 +107,9 @@ public class GameFactory MAP_B } - private static Map.Config config() + private static Board.Config config() { - Map.Config cfg = new Map.Config(); + Board.Config cfg = new Board.Config(); cfg.cols = 11; cfg.rows = 9; cfg.x0 = 83; @@ -128,14 +126,14 @@ public class GameFactory public static Map getMap(AssetManager manager, MapType t) { - Map.Config cfg = config(); + Board.Config cfg = config(); - Tile[][] board = new Tile[cfg.rows][]; + Hex[][] board = new Hex[cfg.rows][]; boolean evenRow = true; for (int i = 0; i < cfg.rows; i++) { float y = cfg.y0 + (i * cfg.h) - cfg.dh; int c = (evenRow ? cfg.cols : cfg.cols - 1); - board[i] = new Tile[c]; + board[i] = new Hex[c]; for ( int j = 0; j < c; j ++) { float x = cfg.x0 + (j * cfg.w) ;//+ (cfg.w / 2f); if (!evenRow) x += cfg.dw; @@ -149,10 +147,10 @@ public class GameFactory Map m = null; switch(t) { case MAP_A: - m = new MapNode(config(), board, manager.get("images/map_a.png", Texture.class)); + m = new Map(config(), board, manager.get("images/map_a.png", Texture.class)); break; case MAP_B: - m = new MapNode(config(), board, manager.get("images/map_b.png", Texture.class)); + m = new Map(config(), board, manager.get("images/map_b.png", Texture.class)); break; } diff --git a/core/src/ch/asynk/tankontank/game/Hex.java b/core/src/ch/asynk/tankontank/game/Hex.java index 2d07b52..ae6499e 100644 --- a/core/src/ch/asynk/tankontank/game/Hex.java +++ b/core/src/ch/asynk/tankontank/game/Hex.java @@ -2,9 +2,9 @@ package ch.asynk.tankontank.game; import com.badlogic.gdx.graphics.g2d.TextureAtlas; -import ch.asynk.tankontank.engine.TileOverlays; +import ch.asynk.tankontank.engine.Tile; -public class Hex extends TileOverlays +public class Hex extends Tile { public enum Terrain { diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java new file mode 100644 index 0000000..9eef409 --- /dev/null +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -0,0 +1,41 @@ +package ch.asynk.tankontank.game; + +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.math.GridPoint2; + +import ch.asynk.tankontank.engine.Board; +import ch.asynk.tankontank.engine.Pawn; + +public class Map extends Board +{ + private Pawn currentPawn; + private GridPoint2 currentHex = new GridPoint2(-1, -1); + + public Map(Board.Config cfg, Hex[][] board, Texture texture) + { + super(cfg, board, texture); + } + + public boolean drag(float dx, float dy) + { + if (currentPawn == null) return false; + currentPawn.translate(dx, dy); + return true; + } + + public void touchDown(float x, float y) + { + getHexAt(currentHex, x, y); + if (currentHex.x != -1) { + currentPawn = getTopPawnAt(currentHex); + } + } + + public void touchUp(float x, float y) + { + getHexAt(currentHex, x, y); + if (currentPawn != null) { + movePawnTo(currentPawn, currentHex); + } + } +} diff --git a/core/src/ch/asynk/tankontank/game/Unit.java b/core/src/ch/asynk/tankontank/game/Unit.java index 61833eb..31a822d 100644 --- a/core/src/ch/asynk/tankontank/game/Unit.java +++ b/core/src/ch/asynk/tankontank/game/Unit.java @@ -2,9 +2,9 @@ package ch.asynk.tankontank.game; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import ch.asynk.tankontank.engine.PawnImage; +import ch.asynk.tankontank.engine.Pawn; -public class Unit extends PawnImage +public class Unit extends Pawn { public int rng; public int def; diff --git a/core/src/ch/asynk/tankontank/screens/GameScreen.java b/core/src/ch/asynk/tankontank/screens/GameScreen.java index b439cce..c88cbaf 100644 --- a/core/src/ch/asynk/tankontank/screens/GameScreen.java +++ b/core/src/ch/asynk/tankontank/screens/GameScreen.java @@ -31,7 +31,7 @@ import ch.asynk.tankontank.TankOnTank; import ch.asynk.tankontank.game.GameFactory; import ch.asynk.tankontank.game.GameFactory.UnitType; -import ch.asynk.tankontank.engine.Map; +import ch.asynk.tankontank.game.Map; import ch.asynk.tankontank.engine.Pawn; public class GameScreen implements Screen @@ -69,12 +69,10 @@ public class GameScreen implements Screen fps.setPosition( 10, Gdx.graphics.getHeight() - 40); map = GameFactory.getMap(game.manager, GameFactory.MapType.MAP_A); - map.setPosition(60, 60); mapBatch = new SpriteBatch(); cam = new OrthographicCamera(); cam.setToOrtho(false); - // cam.position.set((map.getWidth()/2), (map.getHeight()/2), 0); mapViewport = new FitViewport(map.getWidth(), map.getHeight(), cam); mapViewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true); -- cgit v1.1-2-g2b99