From e85dfe2d6b2ee5e4d2425614377eda79f7af4e79 Mon Sep 17 00:00:00 2001 From: ms622 <ms622@hdm-stuttgart.de> Date: Thu, 23 Nov 2023 17:47:19 +0100 Subject: [PATCH] add EntityFactory.java, update GameSceneController.java, fix InputHandler.java, update Player.java #6 --- .../Controller/GameSceneController.java | 11 ++++- .../Model/Entity/EntityFactory.java | 10 ++++ .../battlearena/Model/Entity/Player.java | 49 +++++++++++-------- .../Model/Inputs/InputHandler.java | 1 + 4 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java 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 fb133e03..e5c306dc 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 00000000..873a8359 --- /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 5c1d0ab7..0b5e206b 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 ff6f60e0..883b00bc 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; -- GitLab