From 5776e44efaff6df74727b51a4aa03eecc271da5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Wed, 17 Aug 2022 11:49:35 +0200 Subject: [PATCH] Put player onto Forrest Temple map --- .../demo/entity/Character.java | 15 ++++++ .../bartlomiejpluta/demo/entity/Player.java | 12 +++++ .../demo/map/ForrestTempleHandler.java | 1 + .../demo/runner/DemoRunner.java | 48 +++++++++++++++++-- 4 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/bartlomiejpluta/demo/entity/Character.java create mode 100644 src/main/java/com/bartlomiejpluta/demo/entity/Player.java diff --git a/src/main/java/com/bartlomiejpluta/demo/entity/Character.java b/src/main/java/com/bartlomiejpluta/demo/entity/Character.java new file mode 100644 index 0000000..e3352d1 --- /dev/null +++ b/src/main/java/com/bartlomiejpluta/demo/entity/Character.java @@ -0,0 +1,15 @@ +package com.bartlomiejpluta.demo.entity; + +import lombok.*; +import com.bartlomiejpluta.base.api.context.Context; +import com.bartlomiejpluta.base.api.entity.Entity; +import com.bartlomiejpluta.base.lib.entity.EntityDelegate; + +public class Character extends EntityDelegate { + protected final Context context; + + public Character(@NonNull Context context, @NonNull Entity entity) { + super(entity); + this.context = context; + } +} \ No newline at end of file diff --git a/src/main/java/com/bartlomiejpluta/demo/entity/Player.java b/src/main/java/com/bartlomiejpluta/demo/entity/Player.java new file mode 100644 index 0000000..724dc2b --- /dev/null +++ b/src/main/java/com/bartlomiejpluta/demo/entity/Player.java @@ -0,0 +1,12 @@ +package com.bartlomiejpluta.demo.entity; + +import lombok.*; +import com.bartlomiejpluta.base.api.context.Context; +import com.bartlomiejpluta.base.api.entity.Entity; + +public class Player extends Character { + + public Player(@NonNull Context context, @NonNull Entity entity) { + super(context, entity); + } +} \ No newline at end of file diff --git a/src/main/java/com/bartlomiejpluta/demo/map/ForrestTempleHandler.java b/src/main/java/com/bartlomiejpluta/demo/map/ForrestTempleHandler.java index 9912d1f..0044a47 100644 --- a/src/main/java/com/bartlomiejpluta/demo/map/ForrestTempleHandler.java +++ b/src/main/java/com/bartlomiejpluta/demo/map/ForrestTempleHandler.java @@ -7,6 +7,7 @@ import com.bartlomiejpluta.base.api.screen.Screen; public class ForrestTempleHandler extends BaseMapHandler { public static final String UID = "f845355e-b9ad-4884-a217-dd3a4c18a3fa"; + public static final int MAIN_LAYER = 4; @Override public void onCreate(Context context, GameMap map) { diff --git a/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java b/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java index 1fd8335..2a42128 100644 --- a/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java +++ b/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java @@ -8,16 +8,52 @@ import com.bartlomiejpluta.base.api.input.Input; import com.bartlomiejpluta.base.api.screen.Screen; import com.bartlomiejpluta.base.api.runner.GameRunner; +import com.bartlomiejpluta.demo.map.ForrestTempleHandler; +import com.bartlomiejpluta.demo.entity.Player; + public class DemoRunner implements GameRunner { private static final Logger log = LoggerFactory.getLogger(DemoRunner.class); + private Screen screen; + private Context context; + private Player player; @Override public void init(Context context) { - // Resume engine, because it is initially paused - context.resume(); - - log.info("The game runner is not implemented yet..."); - throw new RuntimeException("Not implemented yet"); + this.context = context; + this.screen = context.getScreen(); + + configureScreen(); + initPlayer(); + resetPlayer(); + newGame(); + + screen.show(); + } + + private void configureScreen() { + var resolution = screen.getCurrentResolution(); + screen.setSize(800, 600); + screen.setPosition((resolution.x() - 800)/2, (resolution.y() - 600)/2); + } + + private void initPlayer() { + this.player = new Player(context, context.createEntity("815a5c5c-4979-42f5-a42a-ccbbff9a97e5")); + } + + private void resetPlayer() { + this.player.changeEntitySet("815a5c5c-4979-42f5-a42a-ccbbff9a97e5"); + this.player.setScale(1.0f); + this.player.setSpeed(0.07f); + this.player.setAnimationSpeed(0.005f); + this.player.setBlocking(true); + this.player.setCoordinates(0, 11); + } + + private void newGame() { + resetPlayer(); + context.openMap(ForrestTempleHandler.UID); + context.getMap().getObjectLayer(ForrestTempleHandler.MAIN_LAYER).addEntity(this.player); + context.resume(); } @Override @@ -29,4 +65,6 @@ public class DemoRunner implements GameRunner { public void dispose() { // Do something after game loop is end } + + } \ No newline at end of file