Separate map-specific functionality into a Map interface
This commit is contained in:
parent
498f43f430
commit
3c795da121
3 changed files with 64 additions and 34 deletions
9
core/src/com/redstrate/watersymbol/Map.java
Normal file
9
core/src/com/redstrate/watersymbol/Map.java
Normal file
|
@ -0,0 +1,9 @@
|
|||
package com.redstrate.watersymbol;
|
||||
|
||||
import com.redstrate.watersymbol.screens.GameScreen;
|
||||
|
||||
public interface Map {
|
||||
public void setup(GameScreen game);
|
||||
|
||||
public String getMapFilename();
|
||||
}
|
48
core/src/com/redstrate/watersymbol/maps/TestMap.java
Normal file
48
core/src/com/redstrate/watersymbol/maps/TestMap.java
Normal file
|
@ -0,0 +1,48 @@
|
|||
package com.redstrate.watersymbol.maps;
|
||||
|
||||
import com.redstrate.watersymbol.Map;
|
||||
import com.redstrate.watersymbol.Unit;
|
||||
import com.redstrate.watersymbol.screens.GameScreen;
|
||||
|
||||
public class TestMap implements Map {
|
||||
|
||||
@Override
|
||||
public void setup(GameScreen game) {
|
||||
Unit player = new Unit();
|
||||
player.name = "Unit";
|
||||
player.positionX = 11;
|
||||
player.positionY = 16;
|
||||
player.team = Unit.Team.Player;
|
||||
|
||||
game.units.add(player);
|
||||
|
||||
Unit player2 = new Unit();
|
||||
player2.name = "Unit 2";
|
||||
player2.positionX = 11;
|
||||
player2.positionY = 20;
|
||||
player2.team = Unit.Team.Player;
|
||||
|
||||
game.units.add(player2);
|
||||
|
||||
Unit enemy = new Unit();
|
||||
enemy.name = "Bandit A";
|
||||
enemy.positionX = 15;
|
||||
enemy.positionY = 18;
|
||||
enemy.team = Unit.Team.Enemy;
|
||||
|
||||
game.units.add(enemy);
|
||||
|
||||
Unit enemy2 = new Unit();
|
||||
enemy2.name = "Bandit B";
|
||||
enemy2.positionX = 15;
|
||||
enemy2.positionY = 30;
|
||||
enemy2.team = Unit.Team.Enemy;
|
||||
|
||||
game.units.add(enemy2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMapFilename() {
|
||||
return "test.tmx";
|
||||
}
|
||||
}
|
|
@ -20,6 +20,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
|||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.redstrate.watersymbol.*;
|
||||
import com.redstrate.watersymbol.maps.TestMap;
|
||||
import org.w3c.dom.Text;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -33,7 +34,8 @@ public class GameScreen implements Screen {
|
|||
OrthographicCamera camera;
|
||||
TiledMapRenderer tiledMapRenderer;
|
||||
|
||||
ArrayList<Unit> units = new ArrayList<>();
|
||||
public Map map;
|
||||
public ArrayList<Unit> units = new ArrayList<>();
|
||||
Unit.Team currentTurnTeam = Unit.Team.Player;
|
||||
Unit currentUnit = null;
|
||||
int currentUnitIndex = 0;
|
||||
|
@ -67,41 +69,12 @@ public class GameScreen implements Screen {
|
|||
camera.setToOrtho(false, 800, 480);
|
||||
camera.zoom = 2.0f;
|
||||
|
||||
tiledMap = new TmxMapLoader().load("test.tmx");
|
||||
map = new TestMap();
|
||||
tiledMap = new TmxMapLoader().load(map.getMapFilename());
|
||||
map.setup(this);
|
||||
|
||||
tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap);
|
||||
|
||||
Unit player = new Unit();
|
||||
player.name = "Unit";
|
||||
player.positionX = 11;
|
||||
player.positionY = 16;
|
||||
player.team = Unit.Team.Player;
|
||||
|
||||
units.add(player);
|
||||
|
||||
Unit player2 = new Unit();
|
||||
player2.name = "Unit 2";
|
||||
player2.positionX = 11;
|
||||
player2.positionY = 20;
|
||||
player2.team = Unit.Team.Player;
|
||||
|
||||
units.add(player2);
|
||||
|
||||
Unit enemy = new Unit();
|
||||
enemy.name = "Bandit A";
|
||||
enemy.positionX = 15;
|
||||
enemy.positionY = 18;
|
||||
enemy.team = Unit.Team.Enemy;
|
||||
|
||||
units.add(enemy);
|
||||
|
||||
Unit enemy2 = new Unit();
|
||||
enemy2.name = "Bandit B";
|
||||
enemy2.positionX = 15;
|
||||
enemy2.positionY = 30;
|
||||
enemy2.team = Unit.Team.Enemy;
|
||||
|
||||
units.add(enemy2);
|
||||
|
||||
playerTexture = new Texture(Gdx.files.internal("player.png"));
|
||||
playerSprite = new Sprite(playerTexture);
|
||||
playerIdleAnimation = new Animation<TextureRegion>(0.500f, new TextureAtlas("player-idle.atlas").getRegions(), Animation.PlayMode.LOOP_PINGPONG);
|
||||
|
|
Reference in a new issue