From b2b65dd290522b1ec4b52450cf4d8c8445d8c100 Mon Sep 17 00:00:00 2001 From: Maurice Date: Fri, 28 Nov 2025 23:04:36 +0100 Subject: [PATCH] switched from SuperObject to Entity for objects --- src/de/miaurizius/jgame2d/core/GamePanel.java | 6 ++-- src/de/miaurizius/jgame2d/core/UI.java | 6 ++-- .../core/handlers/CollisionHandler.java | 4 +-- src/de/miaurizius/jgame2d/entity/Entity.java | 7 +++-- .../jgame2d/entity/objects/BootsObj.java | 14 ++++++++++ .../jgame2d/entity/objects/ChestObj.java | 14 ++++++++++ .../jgame2d/entity/objects/DoorObj.java | 15 ++++++++++ .../jgame2d/entity/objects/HeartObj.java | 16 +++++++++++ .../jgame2d/entity/objects/KeyObj.java | 14 ++++++++++ .../objects}/SuperObject.java | 3 +- .../miaurizius/jgame2d/object/BootsObj.java | 26 ----------------- .../miaurizius/jgame2d/object/ChestObj.java | 26 ----------------- src/de/miaurizius/jgame2d/object/DoorObj.java | 27 ------------------ .../miaurizius/jgame2d/object/HeartObj.java | 28 ------------------- src/de/miaurizius/jgame2d/object/KeyObj.java | 26 ----------------- 15 files changed, 88 insertions(+), 144 deletions(-) create mode 100644 src/de/miaurizius/jgame2d/entity/objects/BootsObj.java create mode 100644 src/de/miaurizius/jgame2d/entity/objects/ChestObj.java create mode 100644 src/de/miaurizius/jgame2d/entity/objects/DoorObj.java create mode 100644 src/de/miaurizius/jgame2d/entity/objects/HeartObj.java create mode 100644 src/de/miaurizius/jgame2d/entity/objects/KeyObj.java rename src/de/miaurizius/jgame2d/{object => entity/objects}/SuperObject.java (94%) delete mode 100644 src/de/miaurizius/jgame2d/object/BootsObj.java delete mode 100644 src/de/miaurizius/jgame2d/object/ChestObj.java delete mode 100644 src/de/miaurizius/jgame2d/object/DoorObj.java delete mode 100644 src/de/miaurizius/jgame2d/object/HeartObj.java delete mode 100644 src/de/miaurizius/jgame2d/object/KeyObj.java diff --git a/src/de/miaurizius/jgame2d/core/GamePanel.java b/src/de/miaurizius/jgame2d/core/GamePanel.java index 6ad0539..d3a7194 100644 --- a/src/de/miaurizius/jgame2d/core/GamePanel.java +++ b/src/de/miaurizius/jgame2d/core/GamePanel.java @@ -4,7 +4,7 @@ import de.miaurizius.jgame2d.core.enums.GameState; import de.miaurizius.jgame2d.core.handlers.*; import de.miaurizius.jgame2d.entity.Entity; import de.miaurizius.jgame2d.entity.Player; -import de.miaurizius.jgame2d.object.SuperObject; +import de.miaurizius.jgame2d.entity.objects.SuperObject; import de.miaurizius.jgame2d.tile.TileManager; import javax.swing.*; @@ -45,7 +45,7 @@ public class GamePanel extends JPanel implements Runnable { // ENTITY AND OBJECT public Player player = new Player(this, keyH); - public SuperObject[] obj = new SuperObject[10]; + public Entity[] obj = new Entity[10]; public Entity[] npc = new Entity[10]; // GAME STATE @@ -127,7 +127,7 @@ public class GamePanel extends JPanel implements Runnable { // GAME tileM.draw(graphics2d); - for (SuperObject superObject : obj) if (superObject != null) superObject.draw(graphics2d, this); + for (Entity superObject : obj) if (superObject != null) superObject.draw(graphics2d); for(Entity npc : npc) if(npc != null) npc.draw(graphics2d); player.draw(graphics2d); ui.draw(graphics2d); diff --git a/src/de/miaurizius/jgame2d/core/UI.java b/src/de/miaurizius/jgame2d/core/UI.java index f839166..6c462cc 100644 --- a/src/de/miaurizius/jgame2d/core/UI.java +++ b/src/de/miaurizius/jgame2d/core/UI.java @@ -1,8 +1,8 @@ package de.miaurizius.jgame2d.core; import de.miaurizius.jgame2d.core.enums.GameState; -import de.miaurizius.jgame2d.object.HeartObj; -import de.miaurizius.jgame2d.object.SuperObject; +import de.miaurizius.jgame2d.entity.Entity; +import de.miaurizius.jgame2d.entity.objects.HeartObj; import java.awt.*; import java.awt.image.BufferedImage; @@ -22,7 +22,7 @@ public class UI { arial_80B = new Font("Arial", Font.BOLD, 80); // CREATE HUD OBJECT - SuperObject heart = new HeartObj(panel); + Entity heart = new HeartObj(panel); heart_full = heart.image; heart_half = heart.image2; heart_blank = heart.image3; diff --git a/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java b/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java index cb61332..b11ea76 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java +++ b/src/de/miaurizius/jgame2d/core/handlers/CollisionHandler.java @@ -2,7 +2,7 @@ package de.miaurizius.jgame2d.core.handlers; import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.entity.Entity; -import de.miaurizius.jgame2d.object.SuperObject; +import de.miaurizius.jgame2d.entity.objects.SuperObject; public class CollisionHandler { @@ -57,7 +57,7 @@ public class CollisionHandler { int index = 999; int c = -1; - for(SuperObject obj : panel.obj) { + for(Entity obj : panel.obj) { c++; if (obj != null) { diff --git a/src/de/miaurizius/jgame2d/entity/Entity.java b/src/de/miaurizius/jgame2d/entity/Entity.java index 252f652..49d31cd 100644 --- a/src/de/miaurizius/jgame2d/entity/Entity.java +++ b/src/de/miaurizius/jgame2d/entity/Entity.java @@ -18,7 +18,7 @@ public class Entity { public int worldX, worldY; public int speed; public BufferedImage up1, up2, down1, down2, left1, left2, right1, right2; - public Direction direction; + public Direction direction = Direction.DOWN; public int spriteCounter = 0; public int spriteNum = 1; public Rectangle solidArea = new Rectangle(0, 0, 48, 48); @@ -27,6 +27,9 @@ public class Entity { public int actionLock = 0; String[] dialogue = new String[20]; int dialogueIndex = 0; + public BufferedImage image, image2, image3; + public String name; + public boolean collision = false; // CHARACTER STATUS public int maxLife; @@ -98,7 +101,7 @@ public class Entity { }; } - BufferedImage initEntitySprites(String name) { + public BufferedImage initEntitySprites(String name) { try { return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/" + name + ".png")), panel.tileSize, panel.tileSize); } catch (IOException e) { diff --git a/src/de/miaurizius/jgame2d/entity/objects/BootsObj.java b/src/de/miaurizius/jgame2d/entity/objects/BootsObj.java new file mode 100644 index 0000000..645e6db --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/objects/BootsObj.java @@ -0,0 +1,14 @@ +package de.miaurizius.jgame2d.entity.objects; + +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.entity.Entity; + +public class BootsObj extends Entity { + + public BootsObj(GamePanel panel) { + super(panel); + name = "boots"; + down1 = initEntitySprites("objects/boots.png"); + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/objects/ChestObj.java b/src/de/miaurizius/jgame2d/entity/objects/ChestObj.java new file mode 100644 index 0000000..432f816 --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/objects/ChestObj.java @@ -0,0 +1,14 @@ +package de.miaurizius.jgame2d.entity.objects; + +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.entity.Entity; + +public class ChestObj extends Entity { + + public ChestObj(GamePanel panel) { + super(panel); + name = "chest"; + down1 = initEntitySprites("objects/chest"); + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java b/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java new file mode 100644 index 0000000..c13de80 --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java @@ -0,0 +1,15 @@ +package de.miaurizius.jgame2d.entity.objects; + +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.entity.Entity; + +public class DoorObj extends Entity { + + public DoorObj(GamePanel panel) { + super(panel); + name = "door"; + down1 = initEntitySprites("objects/door"); + collision = true; + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/objects/HeartObj.java b/src/de/miaurizius/jgame2d/entity/objects/HeartObj.java new file mode 100644 index 0000000..1f343ba --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/objects/HeartObj.java @@ -0,0 +1,16 @@ +package de.miaurizius.jgame2d.entity.objects; + +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.entity.Entity; + +public class HeartObj extends Entity { + + public HeartObj(GamePanel panel) { + super(panel); + name = "heart"; + image = initEntitySprites("objects/heart_full"); + image2 = initEntitySprites("objects/heart_half"); + image3 = initEntitySprites("objects/heart_blank"); + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/objects/KeyObj.java b/src/de/miaurizius/jgame2d/entity/objects/KeyObj.java new file mode 100644 index 0000000..21e929f --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/objects/KeyObj.java @@ -0,0 +1,14 @@ +package de.miaurizius.jgame2d.entity.objects; + +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.entity.Entity; + +public class KeyObj extends Entity { + + public KeyObj(GamePanel panel) { + super(panel); + name = "key"; + down1 = initEntitySprites("objects/key"); + } + +} diff --git a/src/de/miaurizius/jgame2d/object/SuperObject.java b/src/de/miaurizius/jgame2d/entity/objects/SuperObject.java similarity index 94% rename from src/de/miaurizius/jgame2d/object/SuperObject.java rename to src/de/miaurizius/jgame2d/entity/objects/SuperObject.java index b63b046..9a518d2 100644 --- a/src/de/miaurizius/jgame2d/object/SuperObject.java +++ b/src/de/miaurizius/jgame2d/entity/objects/SuperObject.java @@ -1,10 +1,11 @@ -package de.miaurizius.jgame2d.object; +package de.miaurizius.jgame2d.entity.objects; import de.miaurizius.jgame2d.core.GamePanel; import java.awt.*; import java.awt.image.BufferedImage; +@Deprecated public class SuperObject { public BufferedImage image, image2, image3; diff --git a/src/de/miaurizius/jgame2d/object/BootsObj.java b/src/de/miaurizius/jgame2d/object/BootsObj.java deleted file mode 100644 index 301822a..0000000 --- a/src/de/miaurizius/jgame2d/object/BootsObj.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.miaurizius.jgame2d.object; - -import de.miaurizius.jgame2d.core.Boot; -import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.core.Utility; - -import javax.imageio.ImageIO; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.logging.Level; - -public class BootsObj extends SuperObject { - - GamePanel panel; - - public BootsObj(GamePanel panel) { - this.panel = panel; - name = "boots"; - try { - image = Utility.scaleImage(ImageIO.read(new FileInputStream("assets/objects/boots.png")), panel.tileSize, panel.tileSize); - } catch(IOException e) { - Boot.logger.log(Level.SEVERE, "Could not load image", e); - } - } - -} diff --git a/src/de/miaurizius/jgame2d/object/ChestObj.java b/src/de/miaurizius/jgame2d/object/ChestObj.java deleted file mode 100644 index 8c37e46..0000000 --- a/src/de/miaurizius/jgame2d/object/ChestObj.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.miaurizius.jgame2d.object; - -import de.miaurizius.jgame2d.core.Boot; -import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.core.Utility; - -import javax.imageio.ImageIO; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.logging.Level; - -public class ChestObj extends SuperObject { - - GamePanel panel; - - public ChestObj(GamePanel panel) { - this.panel = panel; - name = "chest"; - try { - image = Utility.scaleImage(ImageIO.read(new FileInputStream("assets/objects/chest.png")), panel.tileSize, panel.tileSize); - } catch(IOException e) { - Boot.logger.log(Level.SEVERE, "Could not load image", e); - } - } - -} diff --git a/src/de/miaurizius/jgame2d/object/DoorObj.java b/src/de/miaurizius/jgame2d/object/DoorObj.java deleted file mode 100644 index 9de76fd..0000000 --- a/src/de/miaurizius/jgame2d/object/DoorObj.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.miaurizius.jgame2d.object; - -import de.miaurizius.jgame2d.core.Boot; -import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.core.Utility; - -import javax.imageio.ImageIO; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.logging.Level; - -public class DoorObj extends SuperObject { - - GamePanel panel; - - public DoorObj(GamePanel panel) { - this.panel = panel; - name = "door"; - try { - image = Utility.scaleImage(ImageIO.read(new FileInputStream("assets/objects/door.png")), panel.tileSize, panel.tileSize); - } catch(IOException e) { - Boot.logger.log(Level.SEVERE, "Could not load image", e); - } - collision = true; - } - -} diff --git a/src/de/miaurizius/jgame2d/object/HeartObj.java b/src/de/miaurizius/jgame2d/object/HeartObj.java deleted file mode 100644 index 38d18ec..0000000 --- a/src/de/miaurizius/jgame2d/object/HeartObj.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.miaurizius.jgame2d.object; - -import de.miaurizius.jgame2d.core.Boot; -import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.core.Utility; - -import javax.imageio.ImageIO; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.logging.Level; - -public class HeartObj extends SuperObject { - - GamePanel panel; - - public HeartObj(GamePanel panel) { - this.panel = panel; - name = "heart"; - try { - image = Utility.scaleImage(ImageIO.read(new FileInputStream("assets/objects/heart_full.png")), panel.tileSize, panel.tileSize); - image2 = Utility.scaleImage(ImageIO.read(new FileInputStream("assets/objects/heart_half.png")), panel.tileSize, panel.tileSize); - image3 = Utility.scaleImage(ImageIO.read(new FileInputStream("assets/objects/heart_blank.png")), panel.tileSize, panel.tileSize); - } catch(IOException e) { - Boot.logger.log(Level.SEVERE, "Could not load image", e); - } - } - -} diff --git a/src/de/miaurizius/jgame2d/object/KeyObj.java b/src/de/miaurizius/jgame2d/object/KeyObj.java deleted file mode 100644 index 1fed856..0000000 --- a/src/de/miaurizius/jgame2d/object/KeyObj.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.miaurizius.jgame2d.object; - -import de.miaurizius.jgame2d.core.Boot; -import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.core.Utility; - -import javax.imageio.ImageIO; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.logging.Level; - -public class KeyObj extends SuperObject { - - GamePanel panel; - - public KeyObj(GamePanel panel) { - this.panel = panel; - name = "key"; - try { - image = Utility.scaleImage(ImageIO.read(new FileInputStream("assets/objects/key.png")), panel.tileSize, panel.tileSize); - } catch(IOException e) { - Boot.logger.log(Level.SEVERE, "Could not load image", e); - } - } - -}