From 67309a6e28dfd83ded4afa463240c2b274bc02d7 Mon Sep 17 00:00:00 2001 From: Maurice Date: Fri, 12 Dec 2025 12:52:50 +0100 Subject: [PATCH] changed tile array to three-dimensional array (i0=map; i1=col; i2=row) --- assets/maps/hut.map | 50 +++++++++++++++++++ assets/maps/world3.map | 50 +++++++++++++++++++ src/de/miaurizius/jgame2d/core/GamePanel.java | 3 +- src/de/miaurizius/jgame2d/core/enums/Map.java | 23 +++++++++ .../jgame2d/core/handlers/AssetSetter.java | 12 +++++ .../core/handlers/CollisionHandler.java | 16 +++--- .../jgame2d/core/handlers/KeyHandler.java | 1 + src/de/miaurizius/jgame2d/entity/Player.java | 2 + .../miaurizius/jgame2d/tile/TileManager.java | 20 +++++--- 9 files changed, 161 insertions(+), 16 deletions(-) create mode 100644 assets/maps/hut.map create mode 100644 assets/maps/world3.map create mode 100644 src/de/miaurizius/jgame2d/core/enums/Map.java diff --git a/assets/maps/hut.map b/assets/maps/hut.map new file mode 100644 index 0000000..11f553e --- /dev/null +++ b/assets/maps/hut.map @@ -0,0 +1,50 @@ +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 40 40 40 40 40 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 43 43 43 43 43 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 43 43 44 43 43 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 43 43 43 43 43 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 43 43 43 43 43 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 43 43 43 43 43 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 43 43 43 43 43 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 40 40 40 10 40 40 40 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 +41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 \ No newline at end of file diff --git a/assets/maps/world3.map b/assets/maps/world3.map new file mode 100644 index 0000000..9f4b3ac --- /dev/null +++ b/assets/maps/world3.map @@ -0,0 +1,50 @@ +12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 13 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 +12 12 12 12 12 12 12 13 22 20 20 20 20 20 20 20 23 12 22 20 20 20 20 20 20 20 20 23 12 12 12 22 20 20 20 20 20 20 20 20 20 20 23 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 18 41 40 40 40 40 40 41 19 20 21 41 10 10 11 10 10 10 10 19 20 20 20 21 41 10 35 33 33 33 33 33 33 36 17 12 12 13 12 12 12 12 +12 12 13 12 12 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 14 15 15 15 16 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 17 12 12 12 18 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12 +12 12 12 13 12 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 17 12 12 12 18 11 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 13 12 12 12 12 12 +12 12 12 12 13 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 19 20 20 20 21 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 18 41 40 40 39 40 40 41 41 41 41 41 11 10 35 33 36 10 10 10 10 10 10 10 10 10 37 28 28 29 26 27 28 38 17 13 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 18 41 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 14 15 25 12 12 12 12 12 12 12 +12 12 12 12 13 12 12 12 24 16 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 13 12 12 12 12 +12 12 12 12 12 12 12 12 12 18 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 22 21 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 10 10 10 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 12 13 12 12 12 +12 12 13 12 12 12 12 22 21 41 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 35 33 34 26 30 17 12 12 13 12 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 10 10 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 26 26 30 17 12 12 12 12 12 12 12 12 12 +12 12 12 13 12 12 12 18 41 41 10 41 41 41 41 41 41 41 41 41 41 10 31 26 30 10 41 41 41 41 41 41 41 41 41 31 26 27 28 38 17 12 13 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 10 41 41 10 35 33 33 33 33 33 33 33 34 26 32 33 33 33 33 36 41 41 41 35 33 34 26 30 10 41 17 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 13 12 18 41 41 10 41 41 11 31 26 26 26 26 26 26 26 26 26 26 26 26 26 26 30 10 10 10 31 26 26 26 30 10 14 25 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 13 18 41 41 10 41 41 10 37 28 28 28 28 28 28 28 29 26 27 28 28 28 28 38 41 41 41 37 28 29 26 30 10 17 12 13 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 24 16 41 10 41 41 10 41 41 41 41 41 41 41 10 31 26 30 10 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 12 13 12 12 12 12 12 +12 12 12 12 12 12 12 12 18 41 10 41 41 10 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 11 17 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 13 12 22 21 41 10 41 41 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 13 12 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 10 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 12 12 12 12 12 12 12 +12 12 12 13 12 12 12 18 41 41 10 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 10 41 41 41 41 41 41 41 31 26 30 10 17 12 13 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 10 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 10 41 41 41 41 31 26 30 10 17 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 13 18 41 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 10 41 41 41 41 37 28 38 10 17 12 12 12 12 13 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 11 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 10 41 14 25 12 12 13 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 24 16 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 13 12 12 18 41 10 10 10 11 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 13 12 12 12 +12 12 12 12 12 12 12 12 18 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 11 17 12 12 13 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 18 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 13 12 12 22 21 41 41 41 41 41 41 41 41 41 41 41 41 41 37 28 38 41 41 41 41 41 41 41 41 41 41 11 10 10 19 23 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 41 41 41 41 41 41 41 41 41 41 10 10 10 10 10 10 10 41 41 41 41 41 41 41 10 10 10 10 10 19 23 12 12 12 13 12 12 12 12 12 +12 12 12 12 12 12 13 18 41 41 41 41 41 41 41 41 41 41 41 10 10 10 10 10 10 10 10 10 41 41 10 41 41 10 10 10 10 10 10 10 17 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 41 41 41 41 41 41 41 41 41 11 10 10 10 10 10 11 10 10 41 41 41 41 10 10 10 10 10 11 10 10 17 12 13 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 42 41 41 41 41 41 41 41 41 10 11 10 10 10 10 10 10 10 10 41 41 41 10 10 10 10 10 41 10 10 17 12 12 12 12 12 12 12 12 12 +12 12 13 12 12 12 12 18 41 41 10 41 41 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 41 10 10 10 10 10 17 12 12 12 12 13 12 12 12 12 +12 12 12 12 12 12 12 18 41 41 10 10 10 10 41 14 15 15 16 10 10 10 10 10 11 10 10 14 15 15 16 10 10 10 10 10 10 10 11 10 17 12 12 12 12 12 12 13 12 12 +12 12 12 12 12 12 12 18 41 41 41 41 41 41 14 25 12 12 24 16 10 10 10 10 10 10 14 25 12 12 18 10 10 41 10 10 41 10 10 10 17 12 12 12 12 12 12 12 12 12 +12 12 12 12 13 12 12 24 15 15 15 15 15 15 25 12 12 12 12 24 15 15 15 15 15 15 25 12 13 12 24 16 10 11 10 10 10 10 14 15 25 12 13 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 24 15 15 15 15 15 15 25 12 12 12 12 12 12 12 13 12 12 12 +12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 +12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 +12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 +12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 \ No newline at end of file diff --git a/src/de/miaurizius/jgame2d/core/GamePanel.java b/src/de/miaurizius/jgame2d/core/GamePanel.java index bd65f7b..79b8028 100644 --- a/src/de/miaurizius/jgame2d/core/GamePanel.java +++ b/src/de/miaurizius/jgame2d/core/GamePanel.java @@ -1,6 +1,7 @@ package de.miaurizius.jgame2d.core; import de.miaurizius.jgame2d.core.enums.GameState; +import de.miaurizius.jgame2d.core.enums.Map; import de.miaurizius.jgame2d.core.handlers.*; import de.miaurizius.jgame2d.entity.Entity; import de.miaurizius.jgame2d.entity.Player; @@ -37,7 +38,7 @@ public class GamePanel extends JPanel implements Runnable { // WORLD SETTINGS public final int maxWorldCol = 50; public final int maxWorldRow = 50; - public final String currentMap = "testmap2"; + public final Map currentMap = Map.OVERWORLD; //FPS final int FPS = 60; diff --git a/src/de/miaurizius/jgame2d/core/enums/Map.java b/src/de/miaurizius/jgame2d/core/enums/Map.java new file mode 100644 index 0000000..0ab1b79 --- /dev/null +++ b/src/de/miaurizius/jgame2d/core/enums/Map.java @@ -0,0 +1,23 @@ +package de.miaurizius.jgame2d.core.enums; + +public enum Map { + + OVERWORLD("world3", 0), + HUT("hut", 1); + + private final String name; + private final int index; + + Map(String name, int index) { + this.name = name; + this.index = index; + } + + public String getName() { + return name; + } + + public int getIndex() { + return index; + } +} diff --git a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java index 9737e12..68d5230 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java +++ b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java @@ -84,6 +84,18 @@ public class AssetSetter { panel.iTile[i] = new DryTreeTI(panel,31,12);i++; panel.iTile[i] = new DryTreeTI(panel,32,12);i++; panel.iTile[i] = new DryTreeTI(panel,33,12);i++; + + panel.iTile[i] = new DryTreeTI(panel,18,40);i++; + panel.iTile[i] = new DryTreeTI(panel,17,40);i++; + panel.iTile[i] = new DryTreeTI(panel,16,40);i++; + panel.iTile[i] = new DryTreeTI(panel,15,40);i++; + panel.iTile[i] = new DryTreeTI(panel,14,40);i++; + panel.iTile[i] = new DryTreeTI(panel,13,40);i++; + panel.iTile[i] = new DryTreeTI(panel,13,41);i++; + panel.iTile[i] = new DryTreeTI(panel,12,41);i++; + panel.iTile[i] = new DryTreeTI(panel,11,41);i++; + panel.iTile[i] = new DryTreeTI(panel,10,41);i++; + panel.iTile[i] = new DryTreeTI(panel,10,40);i++; } } diff --git a/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java b/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java index 8c98a25..052bb44 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java +++ b/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java @@ -28,26 +28,26 @@ public class CollisionHandler { switch(entity.direction) { case UP: entityTopRow = (entityTopWorldY - entity.speed)/panel.tileSize; - tileNum1 = panel.tileM.mapTileNum[entityLeftCol][entityTopRow]; - tileNum2 = panel.tileM.mapTileNum[entityRightCol][entityTopRow]; + tileNum1 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityLeftCol][entityTopRow]; + tileNum2 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityRightCol][entityTopRow]; if(panel.tileM.tile[tileNum1].collision || panel.tileM.tile[tileNum2].collision) entity.collisionOn = true; break; case DOWN: entityBottomRow = (entityBottomWorldY + entity.speed)/panel.tileSize; - tileNum1 = panel.tileM.mapTileNum[entityLeftCol][entityBottomRow]; - tileNum2 = panel.tileM.mapTileNum[entityRightCol][entityBottomRow]; + tileNum1 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityLeftCol][entityBottomRow]; + tileNum2 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityRightCol][entityBottomRow]; if(panel.tileM.tile[tileNum1].collision || panel.tileM.tile[tileNum2].collision) entity.collisionOn = true; break; case LEFT: entityLeftCol = (entityLeftWorldX - entity.speed)/panel.tileSize; - tileNum1 = panel.tileM.mapTileNum[entityLeftCol][entityTopRow]; - tileNum2 = panel.tileM.mapTileNum[entityLeftCol][entityBottomRow]; + tileNum1 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityLeftCol][entityTopRow]; + tileNum2 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityLeftCol][entityBottomRow]; if(panel.tileM.tile[tileNum1].collision || panel.tileM.tile[tileNum2].collision) entity.collisionOn = true; break; case RIGHT: entityRightCol = (entityRightWorldX + entity.speed)/panel.tileSize; - tileNum1 = panel.tileM.mapTileNum[entityRightCol][entityTopRow]; - tileNum2 = panel.tileM.mapTileNum[entityRightCol][entityBottomRow]; + tileNum1 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityRightCol][entityTopRow]; + tileNum2 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityRightCol][entityBottomRow]; if(panel.tileM.tile[tileNum1].collision || panel.tileM.tile[tileNum2].collision) entity.collisionOn = true; break; } diff --git a/src/de/miaurizius/jgame2d/core/handlers/KeyHandler.java b/src/de/miaurizius/jgame2d/core/handlers/KeyHandler.java index 00848a2..4cbbd59 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/KeyHandler.java +++ b/src/de/miaurizius/jgame2d/core/handlers/KeyHandler.java @@ -172,6 +172,7 @@ public class KeyHandler implements KeyListener { case KeyEvent.VK_SPACE: if(panel.ui.commandNum == 0) { panel.gameState = GameState.PLAY; + panel.playMusic(0); panel.retry(); } if(panel.ui.commandNum == 1) { diff --git a/src/de/miaurizius/jgame2d/entity/Player.java b/src/de/miaurizius/jgame2d/entity/Player.java index fbcc9e8..073aa47 100644 --- a/src/de/miaurizius/jgame2d/entity/Player.java +++ b/src/de/miaurizius/jgame2d/entity/Player.java @@ -128,6 +128,8 @@ public class Player extends Entity { if(life <= 0) { panel.gameState = GameState.GAMEOVER; + panel.ui.commandNum = -1; + panel.stopMusic(); panel.playSE(12); } } diff --git a/src/de/miaurizius/jgame2d/tile/TileManager.java b/src/de/miaurizius/jgame2d/tile/TileManager.java index b3d4a81..d02663e 100644 --- a/src/de/miaurizius/jgame2d/tile/TileManager.java +++ b/src/de/miaurizius/jgame2d/tile/TileManager.java @@ -3,6 +3,7 @@ package de.miaurizius.jgame2d.tile; import de.miaurizius.jgame2d.core.Boot; import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.core.Utility; +import de.miaurizius.jgame2d.core.enums.Map; import javax.imageio.ImageIO; import java.awt.*; @@ -13,14 +14,14 @@ public class TileManager { GamePanel panel; public Tile[] tile; - public int[][] mapTileNum; + public int[][][] mapTileNum; public TileManager(GamePanel panel) { this.panel = panel; tile = new Tile[50]; - mapTileNum = new int[panel.maxWorldCol][panel.maxWorldRow]; + mapTileNum = new int[Map.values().length][panel.maxWorldCol][panel.maxWorldRow]; getTileImage(); - loadMap(panel.currentMap); + for(Map m : Map.values()) loadMap(m); } public void initializeTile(int i, String name, boolean col) { @@ -85,15 +86,20 @@ public class TileManager { initializeTile(40, "wall", true); initializeTile(41, "tree", true); + // + initializeTile(42, "hut", false); + initializeTile(43, "floor01", false); + initializeTile(44, "table01", true); + for (Tile tile : tile) { if(tile == null) continue; tile.image = Utility.scaleImage(tile.image, panel.tileSize, panel.tileSize); } } - public void loadMap(String map) { + public void loadMap(Map map) { try { - InputStream stream = new FileInputStream("assets/maps/"+map+".map"); + InputStream stream = new FileInputStream("assets/maps/"+map.getName()+".map"); BufferedReader bReader = new BufferedReader(new InputStreamReader(stream)); int col = 0; int row = 0; @@ -102,7 +108,7 @@ public class TileManager { while(col < panel.maxWorldCol) { String[] numbers = line.split(" "); int num = Integer.parseInt(numbers[col]); - mapTileNum[col][row] = num; + mapTileNum[map.getIndex()][col][row] = num; col++; } if(col == panel.maxWorldCol) { @@ -121,7 +127,7 @@ public class TileManager { int worldRow = 0; while(worldCol < panel.maxWorldCol && worldRow < panel.maxWorldRow) { - int tileNum = mapTileNum[worldCol][worldRow]; + int tileNum = mapTileNum[panel.currentMap.getIndex()][worldCol][worldRow]; int worldX = worldCol * panel.tileSize; int worldY = worldRow * panel.tileSize;