diff --git a/core/assets/square.png b/core/assets/square.png new file mode 100644 index 0000000..3b1e50f Binary files /dev/null and b/core/assets/square.png differ diff --git a/core/src/netwerkprog/game/client/MainGame.java b/core/src/netwerkprog/game/client/MainGame.java index 65e9ced..c06fdf6 100644 --- a/core/src/netwerkprog/game/client/MainGame.java +++ b/core/src/netwerkprog/game/client/MainGame.java @@ -7,6 +7,8 @@ import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; @@ -18,6 +20,7 @@ import netwerkprog.game.client.game.map.MapRenderer; import netwerkprog.game.client.game.map.GameInputProcessor; import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.graphics.FrameRate; +import netwerkprog.game.util.graphics.TextRenderer; public class MainGame extends ApplicationAdapter { SpriteBatch batch; @@ -29,6 +32,10 @@ public class MainGame extends ApplicationAdapter { private GameInputProcessor gameInputProcessor; private GameCharacter selectedCharacter; private Team team; + private Team enemyTeam; + private TextRenderer textRenderer; + private BitmapFont font; + private Map map; public MapRenderer mapRenderer; @@ -55,6 +62,8 @@ public class MainGame extends ApplicationAdapter { screenHeight = Gdx.graphics.getHeight(); frameRate = new FrameRate(); camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + textRenderer = new TextRenderer(); + font = new BitmapFont(); String[] strings = new String[]{ @@ -80,6 +89,7 @@ public class MainGame extends ApplicationAdapter { camera.viewportWidth = screenWidth / 2; camera.viewportHeight = screenHeight / 2; camera.update(); + initCharacters(); // this.tree.insert(new Hacker(,new BodySwap())); @@ -93,7 +103,7 @@ public class MainGame extends ApplicationAdapter { private void initCharacters() { Texture texture = new Texture(Gdx.files.internal("core/assets/characters.png")); TextureRegion[][] characters = TextureRegion.split(texture, 32, 32); - this.testCharacter = new Hacker("harry",characters[1][0], new BodySwap("test")); + this.testCharacter = new Hacker("harryyyyyyyyyy",characters[1][0], new BodySwap("test")); GameCharacter character2 = new Hacker("test2",characters[2][0], new BodySwap("test")); this.setSelectedCharacter(testCharacter); mapRenderer.getGameTiles()[1][1].visit(testCharacter); @@ -135,6 +145,13 @@ public class MainGame extends ApplicationAdapter { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); mapRenderer.render(); frameRate.render(); + renderText(); + + } + + private void renderText() { + String text = "Selected character: " + selectedCharacter.getName(); + textRenderer.render(text,Gdx.graphics.getWidth() - text.length() * 6.5f,Gdx.graphics.getHeight() - 3); } /** @@ -153,6 +170,7 @@ public class MainGame extends ApplicationAdapter { screenWidth = width; frameRate.resize(width, height); mapRenderer.resize(width, height); + textRenderer.resize(width,height); } @Override @@ -163,6 +181,7 @@ public class MainGame extends ApplicationAdapter { @Override public void dispose() { batch.dispose(); + textRenderer.dispose(); } public float getScreenWidth() { diff --git a/core/src/netwerkprog/game/client/game/Game.java b/core/src/netwerkprog/game/client/game/Game.java deleted file mode 100644 index ddfdc1d..0000000 --- a/core/src/netwerkprog/game/client/game/Game.java +++ /dev/null @@ -1,15 +0,0 @@ -package netwerkprog.game.client.game; - -import netwerkprog.game.util.application.Controller; - -public class Game extends Controller { - - - public Game() { - } - - @Override - public void run() { - - } -} diff --git a/core/src/netwerkprog/game/client/game/Graphics.java b/core/src/netwerkprog/game/client/game/Graphics.java deleted file mode 100644 index 29747f0..0000000 --- a/core/src/netwerkprog/game/client/game/Graphics.java +++ /dev/null @@ -1,14 +0,0 @@ -package netwerkprog.game.client.game; - -import netwerkprog.game.util.application.Controller; - -public class Graphics extends Controller { - public Graphics() { - - } - - @Override - public void run() { - - } -} diff --git a/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java b/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java index 07ddc6c..9f9aa21 100644 --- a/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java +++ b/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java @@ -108,6 +108,10 @@ public class GameInputProcessor implements InputProcessor { } return true; + } else { + if (keycode == Input.Keys.ENTER) { + + } } return false; } @@ -132,7 +136,8 @@ public class GameInputProcessor implements InputProcessor { if (mainGame.hasCharacterSelected() && !gameTile.containsCharacter()) { // System.out.println(mainGame.getSelectedCharacter()); removeCharacterFromTile(mainGame.getSelectedCharacter()); - gameTile.visit(mainGame.getSelectedCharacter()); + if (gameTile.getSymbol() != '#') + gameTile.visit(mainGame.getSelectedCharacter()); } if (!mainGame.hasCharacterSelected() && gameTile.containsCharacter()) { mainGame.setSelectedCharacter(gameTile.getCharacter()); diff --git a/core/src/netwerkprog/game/client/game/map/MapRenderer.java b/core/src/netwerkprog/game/client/game/map/MapRenderer.java index 5baa40d..060e05f 100644 --- a/core/src/netwerkprog/game/client/game/map/MapRenderer.java +++ b/core/src/netwerkprog/game/client/game/map/MapRenderer.java @@ -3,7 +3,9 @@ package netwerkprog.game.client.game.map; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import netwerkprog.game.client.MainGame; import netwerkprog.game.util.graphics.Renderable; import com.badlogic.gdx.graphics.g2d.TextureRegion; @@ -17,8 +19,12 @@ public class MapRenderer implements Renderable { private OrthographicCamera cam; private static int x = 0; private static int y = 0; + private BitmapFont font; + + private ShapeRenderer shapeRenderer; private MainGame mainGame; + private Texture square; public static TextureRegion FLOOR_TILE; @@ -43,6 +49,8 @@ public class MapRenderer implements Renderable { cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); this.camera = camera; this.mainGame = MainGame.getInstance(); + font = new BitmapFont(); + square = new Texture(Gdx.files.internal("square.png")); makeTiles(); } @@ -100,9 +108,11 @@ public class MapRenderer implements Renderable { for (int col = 0; col < gameTiles[0].length; col++) { GameTile cur = gameTileRow[col]; batch.draw(cur.getTextureRegion(), cur.x, cur.y); + if (cur.containsCharacter()) { batch.draw(cur.getCharacter().getTextureRegion(), cur.x, cur.y); -// System.out.println("drawing character at " + cur.x + " " + cur.y); + if (cur.getCharacter().equals(mainGame.getSelectedCharacter())) + batch.draw(square, cur.x, cur.y); } } } diff --git a/core/src/netwerkprog/game/util/graphics/TextRenderer.java b/core/src/netwerkprog/game/util/graphics/TextRenderer.java new file mode 100644 index 0000000..bfb6d19 --- /dev/null +++ b/core/src/netwerkprog/game/util/graphics/TextRenderer.java @@ -0,0 +1,38 @@ +package netwerkprog.game.util.graphics; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.utils.Disposable; + +public class TextRenderer implements Disposable { + private BitmapFont font; + private SpriteBatch batch; + private OrthographicCamera cam; + + public TextRenderer() { + font = new BitmapFont(); + batch = new SpriteBatch(); + cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + + } + @Override + public void dispose() { + font.dispose(); + batch.dispose(); + } + + public void resize(int screenWidth, int screenHeight) { + cam = new OrthographicCamera(screenWidth, screenHeight); + cam.translate(screenWidth / 2, screenHeight / 2); + cam.update(); + batch.setProjectionMatrix(cam.combined); + } + + public void render(String text, float x, float y) { + batch.begin(); + font.draw(batch, text, x, y); + batch.end(); + } +}