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.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);

View File

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

View File

@@ -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) {

View File

@@ -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) {

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 java.awt.*;
import java.awt.image.BufferedImage;
@Deprecated
public class SuperObject {
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);
}
}
}