From 099cae42060ff0eb8633e756792537ac77fd85e8 Mon Sep 17 00:00:00 2001 From: ms622 <ms622@hdm-stuttgart.de> Date: Fri, 24 Nov 2023 12:01:56 +0100 Subject: [PATCH] add: Enum EntityType.java, update: implements Entity Interface in EnemyHandler.java, update: implemented EntityFactory.java, update: created player via factory in GameSceneController.java, update: Player.java #6 --- .../Controller/GameSceneController.java | 9 ++++-- .../Model/Entity/EnemyHandler.java | 30 +++++++++++++++++-- .../Model/Entity/EntityFactory.java | 16 ++++++++++ .../battlearena/Model/Entity/EntityType.java | 6 ++++ .../battlearena/Model/Entity/Player.java | 2 +- 5 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityType.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 e5c306dc..c04aa065 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java @@ -1,6 +1,8 @@ package de.hdm_stuttgart.battlearena.Controller; -import de.hdm_stuttgart.battlearena.Model.Entity.Player; +import de.hdm_stuttgart.battlearena.Model.Entity.EntityFactory; +import de.hdm_stuttgart.battlearena.Model.Entity.EntityType; +import de.hdm_stuttgart.battlearena.Model.Entity.IEntity; import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler; import javafx.animation.AnimationTimer; @@ -26,14 +28,14 @@ public class GameSceneController implements Initializable { InputHandler inputHandler = InputHandler.getInstance(); - Player player; + IEntity player; @Override public void initialize(URL url, ResourceBundle resourceBundle) { graphicsContext2D = canvas2D.getGraphicsContext2D(); - player = new Player(graphicsContext2D, inputHandler); + player = EntityFactory.createEntity(EntityType.PLAYER, graphicsContext2D, inputHandler); AnimationTimer gameLoop = new AnimationTimer() { @Override @@ -44,6 +46,7 @@ public class GameSceneController implements Initializable { } }; gameLoop.start(); + log.debug("Game loop started"); } private void updateContent() { diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EnemyHandler.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EnemyHandler.java index ea46bb6f..c8e2638a 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EnemyHandler.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EnemyHandler.java @@ -1,10 +1,36 @@ package de.hdm_stuttgart.battlearena.Model.Entity; +import javafx.scene.canvas.GraphicsContext; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -public class EnemyHandler { +class EnemyHandler implements IEntity{ private static final Logger log = LogManager.getLogger(EnemyHandler.class); -} + + @Override + public void initializeEntity() { + + } + + @Override + public void loadEntitySprites() { + + } + + @Override + public void updateEntityMovement() { + + } + + @Override + public void updateEntityAnimation() { + + } + + @Override + public void renderEntity(GraphicsContext 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 index 873a8359..189243ff 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java @@ -1,5 +1,9 @@ package de.hdm_stuttgart.battlearena.Model.Entity; +import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler; + +import javafx.scene.canvas.GraphicsContext; + import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; @@ -7,4 +11,16 @@ public class EntityFactory { private static final Logger log = LogManager.getLogger(EntityFactory.class); + public static IEntity createEntity(EntityType entityType, GraphicsContext gameScene, InputHandler inputHandler) { + if (entityType == EntityType.PLAYER) { + log.debug("Entity " + entityType + " created"); + return new Player(gameScene, inputHandler); + } else if (entityType == EntityType.ENEMY_PLAYER) { + log.debug("Entity " + entityType + " created"); + return new EnemyHandler(); + } + + throw new IllegalArgumentException ("Entity type not supported " + entityType); + } + } \ No newline at end of file diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityType.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityType.java new file mode 100644 index 00000000..3e856077 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityType.java @@ -0,0 +1,6 @@ +package de.hdm_stuttgart.battlearena.Model.Entity; + +public enum EntityType { + PLAYER, + ENEMY_PLAYER +} \ 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 0b5e206b..45c2ce7e 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 @@ -11,7 +11,7 @@ import org.apache.logging.log4j.LogManager; import java.util.Objects; -public class Player implements IEntity { +class Player implements IEntity { private static final Logger log = LogManager.getLogger(Player.class); -- GitLab