refactor map handling and improve tile initialization logic

This commit is contained in:
2025-12-13 15:40:26 +01:00
parent f9c511d6bb
commit 4aa955246b
54 changed files with 389 additions and 236 deletions

View File

@@ -1,13 +1,23 @@
package de.miaurizius.jgame2d.core;
import javax.swing.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.Logger;
public class Boot {
public static final Logger logger = Logger.getLogger("JDGame2D");
public static JFrame window;
public static GamePanel gamePanel = new GamePanel();
public static GamePanel gamePanel;
static {
try {
gamePanel = new GamePanel();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
static void main() {
generateWindow();

View File

@@ -15,6 +15,8 @@ import javax.sound.sampled.FloatControl;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.logging.Level;
@@ -38,8 +40,8 @@ public class GamePanel extends JPanel implements Runnable {
public Graphics2D fg2;
// WORLD SETTINGS
public final int maxWorldCol = 50;
public final int maxWorldRow = 50;
public int maxWorldCol = 50;
public int maxWorldRow = 50;
public Map currentMap = Map.OVERWORLD;
//FPS
@@ -73,7 +75,7 @@ public class GamePanel extends JPanel implements Runnable {
// GAME STATE
public GameState gameState;
public GamePanel() {
public GamePanel() throws IOException {
this.setPreferredSize(new Dimension(screenWidth, screenHeight));
this.setBackground(Color.black);
this.setDoubleBuffered(true);

View File

@@ -2,7 +2,7 @@ package de.miaurizius.jgame2d.core.enums;
public enum Map {
OVERWORLD("world3", 0),
OVERWORLD("worldmap", 0),
HUT("hut", 1);
private final String name;

View File

@@ -37,18 +37,8 @@ public class AssetSetter {
panel.obj[Map.OVERWORLD.getIndex()][i] = new ChestObj(panel, new KeyObj(panel));
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*30;
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*28;
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*29;
i++;
// panel.obj[Map.OVERWORLD.getIndex()][i] = new LanternObj(panel);
// panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*18;
// panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*20;
// i++;
//
// panel.obj[Map.OVERWORLD.getIndex()][i] = new TentObj(panel);
// panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*19;
// panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*20;
// i++;
}
public void setNPC() {