Java Core
Dynamische Fenstergröße basierend auf TileMap-Dimensionen
Anstatt feste Fenstergrößen (wie 800x600) zu verwenden, sollte sich die Dimension des Canvas (JPanel) dynamisch aus den Kartendaten berechnen. Dadurch wird vermieden, dass ungenutzter schwarzer Rand entsteht. Ablauf: TileMap laden und Dimensionen bestimmen (breite * TILE_SIZE, hoehe * TILE_SIZE). setPreferredSize(...) auf dem Panel setzen. frame.pack() aufrufen, damit der JFrame die Insets (Titelleiste, Rahmen) automatisch berechnet und exakt um das Panel schließt.
Referenz:
Datei
1. Spielprojekt
· Klasse GameWindow.GamePanel
// Berechnung der bevorzugten Größe aus den Kartendaten
if (tileMap != null) {
int pixelWidth = tileMap.getWidthInTiles() * TileMap.TILE_SIZE;
int pixelHeight = tileMap.getHeightInTiles() * TileMap.TILE_SIZE;
setPreferredSize(new Dimension(pixelWidth, pixelHeight));
player = new Player(pixelWidth / 2.0 - 16, pixelHeight / 2.0 - 16);
} else {
// Fallback auf Standardgröße
setPreferredSize(new Dimension(800, 600));
player = new Player(400 - 16, 300 - 16);
}