sorted entity rendering
This commit is contained in:
@@ -4,11 +4,13 @@ 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.entity.objects.SuperObject;
|
|
||||||
import de.miaurizius.jgame2d.tile.TileManager;
|
import de.miaurizius.jgame2d.tile.TileManager;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
@@ -47,6 +49,7 @@ public class GamePanel extends JPanel implements Runnable {
|
|||||||
public Player player = new Player(this, keyH);
|
public Player player = new Player(this, keyH);
|
||||||
public Entity[] obj = new Entity[10];
|
public Entity[] obj = new Entity[10];
|
||||||
public Entity[] npc = new Entity[10];
|
public Entity[] npc = new Entity[10];
|
||||||
|
ArrayList<Entity> entityList = new ArrayList<>();
|
||||||
|
|
||||||
// GAME STATE
|
// GAME STATE
|
||||||
public GameState gameState;
|
public GameState gameState;
|
||||||
@@ -127,9 +130,15 @@ public class GamePanel extends JPanel implements Runnable {
|
|||||||
|
|
||||||
// GAME
|
// GAME
|
||||||
tileM.draw(graphics2d);
|
tileM.draw(graphics2d);
|
||||||
for (Entity superObject : obj) if (superObject != null) superObject.draw(graphics2d);
|
|
||||||
for(Entity npc : npc) if(npc != null) npc.draw(graphics2d);
|
// ENTITY RENDER SYSTEM
|
||||||
player.draw(graphics2d);
|
entityList.add(player);
|
||||||
|
for(Entity entity : npc) if(entity != null) entityList.add(entity);
|
||||||
|
for(Entity entity : obj) if(entity != null) entityList.add(entity);
|
||||||
|
entityList.sort(Comparator.comparingInt(o -> o.worldY));
|
||||||
|
for(Entity entity : entityList) entity.draw(graphics2d);
|
||||||
|
entityList.clear();
|
||||||
|
|
||||||
ui.draw(graphics2d);
|
ui.draw(graphics2d);
|
||||||
|
|
||||||
long drawEnd = System.nanoTime();
|
long drawEnd = System.nanoTime();
|
||||||
|
|||||||
@@ -2,6 +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.OldManNPC;
|
import de.miaurizius.jgame2d.entity.OldManNPC;
|
||||||
|
import de.miaurizius.jgame2d.entity.objects.DoorObj;
|
||||||
|
|
||||||
public class AssetSetter {
|
public class AssetSetter {
|
||||||
|
|
||||||
@@ -11,7 +12,17 @@ public class AssetSetter {
|
|||||||
this.panel = panel;
|
this.panel = panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setObject() {}
|
public void setObject() {
|
||||||
|
|
||||||
|
panel.obj[0] = new DoorObj(panel);
|
||||||
|
panel.obj[0].worldX = panel.tileSize*21;
|
||||||
|
panel.obj[0].worldY = panel.tileSize*22;
|
||||||
|
|
||||||
|
panel.obj[1] = new DoorObj(panel);
|
||||||
|
panel.obj[1].worldX = panel.tileSize*23;
|
||||||
|
panel.obj[1].worldY = panel.tileSize*25;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void setNPC() {
|
public void setNPC() {
|
||||||
panel.npc[0] = new OldManNPC(panel);
|
panel.npc[0] = new OldManNPC(panel);
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ 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.entity.objects.SuperObject;
|
|
||||||
|
|
||||||
public class CollisionHandler {
|
public class CollisionHandler {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user