diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java index fb133e03bf95235c554799f8352c2267defcec0a..e5c306dc222975260d60b2a98b86c0f7cb6f67d4 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java @@ -1,5 +1,6 @@ package de.hdm_stuttgart.battlearena.Controller; +import de.hdm_stuttgart.battlearena.Model.Entity.Player; import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler; import javafx.animation.AnimationTimer; @@ -25,25 +26,31 @@ public class GameSceneController implements Initializable { InputHandler inputHandler = InputHandler.getInstance(); + Player player; + @Override public void initialize(URL url, ResourceBundle resourceBundle) { graphicsContext2D = canvas2D.getGraphicsContext2D(); + player = new Player(graphicsContext2D, inputHandler); + AnimationTimer gameLoop = new AnimationTimer() { @Override public void handle(long l) { + graphicsContext2D.clearRect(0, 0, canvas2D.getWidth(), canvas2D.getHeight()); updateContent(); renderContent(graphicsContext2D); } }; + gameLoop.start(); } private void updateContent() { - + player.updateEntityMovement(); } private void renderContent(GraphicsContext graphicsContext) { - + player.renderEntity(graphicsContext); } } \ No newline at end of file diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..873a83590b45a0e611574142f6000f6de039c300 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java @@ -0,0 +1,10 @@ +package de.hdm_stuttgart.battlearena.Model.Entity; + +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.LogManager; + +public class EntityFactory { + + private static final Logger log = LogManager.getLogger(EntityFactory.class); + +} \ No newline at end of file diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java index 5c1d0ab7366c916911c31396de19092561b3136c..0b5e206ba48a60889ff8b31bbe6bc7f9aae05168 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java @@ -50,8 +50,8 @@ public class Player implements IEntity { @Override public void loadEntitySprites() { try { - directionDownOne = new Image(Objects.requireNonNull(getClass().getResourceAsStream("textures/player/playerPlaceholder.png"))); - directionDownTwo = new Image(Objects.requireNonNull(getClass().getResourceAsStream("textures/player/playerPlaceholder.png"))); + directionDownOne = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/player/playerPlaceholder.png"))); + directionDownTwo = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/player/playerPlaceholder.png"))); } catch (Exception e) { log.error(e); } @@ -69,28 +69,28 @@ public class Player implements IEntity { } else { playerDirection = "right"; } - } - boolean isColliding = false; - - if (!isColliding) { - switch (playerDirection) { - case "up": - mapPosY -= playerSpeed; - break; - case "down": - mapPosY += playerSpeed; - break; - case "left": - mapPosX -= playerSpeed; - break; - case "right": - mapPosX += playerSpeed; + boolean isColliding = false; + + if (!isColliding) { + switch (playerDirection) { + case "up": + mapPosY -= playerSpeed; + break; + case "down": + mapPosY += playerSpeed; + break; + case "left": + mapPosX -= playerSpeed; + break; + case "right": + mapPosX += playerSpeed; + } } - } - updateEntityAnimation(); + updateEntityAnimation(); + } } @Override @@ -144,4 +144,13 @@ public class Player implements IEntity { graphicsContext.drawImage(playerSprite, mapPosX, mapPosY, 48, 48); } + + public int getMapPosX() { + return mapPosX; + } + + public int getMapPosY() { + return mapPosY; + } + } \ No newline at end of file diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java index ff6f60e080ec5a5e6981d4f659e0822015bf814a..883b00bc8e2618b05762cb733732f2b8334205fd 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Inputs/InputHandler.java @@ -48,6 +48,7 @@ public class InputHandler { break; case S: moveDown = false; + break; case A: moveLeft = false; break;