switched from SuperObject to Entity for objects

This commit is contained in:
2025-11-28 23:04:36 +01:00
parent 44b74ddcbf
commit b2b65dd290
15 changed files with 88 additions and 144 deletions

View File

@@ -4,7 +4,7 @@ import de.miaurizius.jgame2d.core.enums.GameState;
import de.miaurizius.jgame2d.core.handlers.*; import de.miaurizius.jgame2d.core.handlers.*;
import de.miaurizius.jgame2d.entity.Entity; import de.miaurizius.jgame2d.entity.Entity;
import de.miaurizius.jgame2d.entity.Player; 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 de.miaurizius.jgame2d.tile.TileManager;
import javax.swing.*; import javax.swing.*;
@@ -45,7 +45,7 @@ public class GamePanel extends JPanel implements Runnable {
// ENTITY AND OBJECT // ENTITY AND OBJECT
public Player player = new Player(this, keyH); 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]; public Entity[] npc = new Entity[10];
// GAME STATE // GAME STATE
@@ -127,7 +127,7 @@ public class GamePanel extends JPanel implements Runnable {
// GAME // GAME
tileM.draw(graphics2d); 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); for(Entity npc : npc) if(npc != null) npc.draw(graphics2d);
player.draw(graphics2d); player.draw(graphics2d);
ui.draw(graphics2d); ui.draw(graphics2d);

View File

@@ -1,8 +1,8 @@
package de.miaurizius.jgame2d.core; package de.miaurizius.jgame2d.core;
import de.miaurizius.jgame2d.core.enums.GameState; import de.miaurizius.jgame2d.core.enums.GameState;
import de.miaurizius.jgame2d.object.HeartObj; import de.miaurizius.jgame2d.entity.Entity;
import de.miaurizius.jgame2d.object.SuperObject; import de.miaurizius.jgame2d.entity.objects.HeartObj;
import java.awt.*; import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
@@ -22,7 +22,7 @@ public class UI {
arial_80B = new Font("Arial", Font.BOLD, 80); arial_80B = new Font("Arial", Font.BOLD, 80);
// CREATE HUD OBJECT // CREATE HUD OBJECT
SuperObject heart = new HeartObj(panel); Entity heart = new HeartObj(panel);
heart_full = heart.image; heart_full = heart.image;
heart_half = heart.image2; heart_half = heart.image2;
heart_blank = heart.image3; heart_blank = heart.image3;

View File

@@ -2,7 +2,7 @@ package de.miaurizius.jgame2d.core.handlers;
import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.core.GamePanel;
import de.miaurizius.jgame2d.entity.Entity; import de.miaurizius.jgame2d.entity.Entity;
import de.miaurizius.jgame2d.object.SuperObject; import de.miaurizius.jgame2d.entity.objects.SuperObject;
public class CollisionHandler { public class CollisionHandler {
@@ -57,7 +57,7 @@ public class CollisionHandler {
int index = 999; int index = 999;
int c = -1; int c = -1;
for(SuperObject obj : panel.obj) { for(Entity obj : panel.obj) {
c++; c++;
if (obj != null) { if (obj != null) {

View File

@@ -18,7 +18,7 @@ public class Entity {
public int worldX, worldY; public int worldX, worldY;
public int speed; public int speed;
public BufferedImage up1, up2, down1, down2, left1, left2, right1, right2; public BufferedImage up1, up2, down1, down2, left1, left2, right1, right2;
public Direction direction; public Direction direction = Direction.DOWN;
public int spriteCounter = 0; public int spriteCounter = 0;
public int spriteNum = 1; public int spriteNum = 1;
public Rectangle solidArea = new Rectangle(0, 0, 48, 48); public Rectangle solidArea = new Rectangle(0, 0, 48, 48);
@@ -27,6 +27,9 @@ public class Entity {
public int actionLock = 0; public int actionLock = 0;
String[] dialogue = new String[20]; String[] dialogue = new String[20];
int dialogueIndex = 0; int dialogueIndex = 0;
public BufferedImage image, image2, image3;
public String name;
public boolean collision = false;
// CHARACTER STATUS // CHARACTER STATUS
public int maxLife; public int maxLife;
@@ -98,7 +101,7 @@ public class Entity {
}; };
} }
BufferedImage initEntitySprites(String name) { public BufferedImage initEntitySprites(String name) {
try { try {
return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/" + name + ".png")), panel.tileSize, panel.tileSize); return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/" + name + ".png")), panel.tileSize, panel.tileSize);
} catch (IOException e) { } catch (IOException e) {

View File

@@ -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");
}
}

View File

@@ -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");
}
}

View File

@@ -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;
}
}

View File

@@ -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");
}
}

View File

@@ -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");
}
}

View File

@@ -1,10 +1,11 @@
package de.miaurizius.jgame2d.object; package de.miaurizius.jgame2d.entity.objects;
import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.core.GamePanel;
import java.awt.*; import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
@Deprecated
public class SuperObject { public class SuperObject {
public BufferedImage image, image2, image3; public BufferedImage image, image2, image3;

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}