1
Fork 0

Separate map-specific functionality into a Map interface

This commit is contained in:
Joshua Goins 2022-05-02 19:37:50 -04:00
parent 498f43f430
commit 3c795da121
3 changed files with 64 additions and 34 deletions

View 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();
}

View 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";
}
}

View file

@ -20,6 +20,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.utils.ScreenUtils; import com.badlogic.gdx.utils.ScreenUtils;
import com.redstrate.watersymbol.*; import com.redstrate.watersymbol.*;
import com.redstrate.watersymbol.maps.TestMap;
import org.w3c.dom.Text; import org.w3c.dom.Text;
import java.util.ArrayList; import java.util.ArrayList;
@ -33,7 +34,8 @@ public class GameScreen implements Screen {
OrthographicCamera camera; OrthographicCamera camera;
TiledMapRenderer tiledMapRenderer; TiledMapRenderer tiledMapRenderer;
ArrayList<Unit> units = new ArrayList<>(); public Map map;
public ArrayList<Unit> units = new ArrayList<>();
Unit.Team currentTurnTeam = Unit.Team.Player; Unit.Team currentTurnTeam = Unit.Team.Player;
Unit currentUnit = null; Unit currentUnit = null;
int currentUnitIndex = 0; int currentUnitIndex = 0;
@ -67,41 +69,12 @@ public class GameScreen implements Screen {
camera.setToOrtho(false, 800, 480); camera.setToOrtho(false, 800, 480);
camera.zoom = 2.0f; 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); 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")); playerTexture = new Texture(Gdx.files.internal("player.png"));
playerSprite = new Sprite(playerTexture); playerSprite = new Sprite(playerTexture);
playerIdleAnimation = new Animation<TextureRegion>(0.500f, new TextureAtlas("player-idle.atlas").getRegions(), Animation.PlayMode.LOOP_PINGPONG); playerIdleAnimation = new Animation<TextureRegion>(0.500f, new TextureAtlas("player-idle.atlas").getRegions(), Animation.PlayMode.LOOP_PINGPONG);