1
Fork 0

Add stage for future ui elements and unit names

This commit is contained in:
Joshua Goins 2022-05-02 18:30:26 -04:00
parent 36b7e0dda9
commit 3c7115f8b9
2 changed files with 38 additions and 6 deletions

View file

@ -1,18 +1,15 @@
package com.redstrate.watersymbol; package com.redstrate.watersymbol;
public class Unit { public class Unit {
public String name;
public int health = 10; public int health = 10;
public int positionX; public int positionX;
public int positionY; public int positionY;
public enum Team { public enum Team {
Player, Player,
Enemy, Enemy,
Ally Ally
} }
public Team team; public Team team;
public int maxDistance = 5; public int maxDistance = 5;
} }

View file

@ -15,6 +15,9 @@ import com.badlogic.gdx.maps.tiled.TmxMapLoader;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
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 org.w3c.dom.Text; import org.w3c.dom.Text;
@ -49,6 +52,11 @@ public class GameScreen implements Screen {
boolean currentlyAwaitingAuxilaryAction = false; boolean currentlyAwaitingAuxilaryAction = false;
private Stage stage;
private Table table;
TextButton unitNameButton;
GameScreen(WaterSymbol game) { GameScreen(WaterSymbol game) {
this.game = game; this.game = game;
@ -60,6 +68,7 @@ public class GameScreen implements Screen {
tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap); tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap);
Unit player = new Unit(); Unit player = new Unit();
player.name = "Unit";
player.positionX = 11; player.positionX = 11;
player.positionY = 16; player.positionY = 16;
player.team = Unit.Team.Player; player.team = Unit.Team.Player;
@ -67,6 +76,7 @@ public class GameScreen implements Screen {
units.add(player); units.add(player);
Unit player2 = new Unit(); Unit player2 = new Unit();
player2.name = "Unit 2";
player2.positionX = 11; player2.positionX = 11;
player2.positionY = 20; player2.positionY = 20;
player2.team = Unit.Team.Player; player2.team = Unit.Team.Player;
@ -74,6 +84,7 @@ public class GameScreen implements Screen {
units.add(player2); units.add(player2);
Unit enemy = new Unit(); Unit enemy = new Unit();
enemy.name = "Bandit A";
enemy.positionX = 15; enemy.positionX = 15;
enemy.positionY = 18; enemy.positionY = 18;
enemy.team = Unit.Team.Enemy; enemy.team = Unit.Team.Enemy;
@ -81,6 +92,7 @@ public class GameScreen implements Screen {
units.add(enemy); units.add(enemy);
Unit enemy2 = new Unit(); Unit enemy2 = new Unit();
enemy2.name = "Bandit B";
enemy2.positionX = 15; enemy2.positionX = 15;
enemy2.positionY = 18; enemy2.positionY = 18;
enemy2.team = Unit.Team.Enemy; enemy2.team = Unit.Team.Enemy;
@ -93,6 +105,23 @@ public class GameScreen implements Screen {
arrowSpritesheet = new ArrowSpritesheet(); arrowSpritesheet = new ArrowSpritesheet();
stage = new Stage();
Gdx.input.setInputProcessor(stage);
table = new Table();
table.setFillParent(true);
stage.addActor(table);
table.setDebug(true); // This is optional, but enables debug lines for tables.
TextButton.TextButtonStyle style = new TextButton.TextButtonStyle();
//style.up = new TextureRegionDrawable(upRegion);
//style.down = new TextureRegionDrawable(downRegion);
style.font = game.font;
unitNameButton = new TextButton("<unit name>", style);
table.top().left().add(unitNameButton);
startNewTeamTurn(Unit.Team.Player); startNewTeamTurn(Unit.Team.Player);
} }
@ -108,6 +137,7 @@ public class GameScreen implements Screen {
if(units.get(i).team == currentTurnTeam) { if(units.get(i).team == currentTurnTeam) {
currentUnit = units.get(i); currentUnit = units.get(i);
currentUnitIndex = i; currentUnitIndex = i;
unitNameButton.setText(currentUnit.name);
return; return;
} }
} }
@ -318,6 +348,9 @@ public class GameScreen implements Screen {
tiledMapRenderer.setView(camera); tiledMapRenderer.setView(camera);
tiledMapRenderer.render(); tiledMapRenderer.render();
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
game.batch.begin(); game.batch.begin();
game.batch.setProjectionMatrix(camera.combined); game.batch.setProjectionMatrix(camera.combined);
@ -470,7 +503,7 @@ public class GameScreen implements Screen {
spriteRegion = arrowSpritesheet.getBendBottomLeftToRight(); spriteRegion = arrowSpritesheet.getBendBottomLeftToRight();
} }
game.font.draw(game.batch, entrance.toString() + " to " + exit.toString(), newPosition.x * 16, newPosition.y * 16); //game.font.draw(game.batch, entrance.toString() + " to " + exit.toString(), newPosition.x * 16, newPosition.y * 16);
if (spriteRegion != null) { if (spriteRegion != null) {
game.batch.draw(spriteRegion, newPosition.x * 16, newPosition.y * 16); game.batch.draw(spriteRegion, newPosition.x * 16, newPosition.y * 16);
@ -640,6 +673,8 @@ public class GameScreen implements Screen {
public void resize(int width, int height) { public void resize(int width, int height) {
camera.viewportWidth = 230; camera.viewportWidth = 230;
camera.viewportHeight = 230 * ((float)height / (float)width); camera.viewportHeight = 230 * ((float)height / (float)width);
stage.getViewport().update(width, height, true);
} }
@Override @Override
@ -659,6 +694,6 @@ public class GameScreen implements Screen {
@Override @Override
public void dispose() { public void dispose() {
stage.dispose();
} }
} }