Java Core
Entkoppeltes Rendering eines persistenten Quest-Trackers
In Ergänzung zu Modals/Dialogfenstern erfordern UI-Elemente wie ein Quest-Tracker eine permanente Anzeige auf der Bildschirmoberfläche (Screen-Space). Implementierung Details:Das Zeichnen erfolgt nach dem Verwerfen der Kamera-Transformation (cameraView.dispose()) direkt auf dem untransformierten Graphics-Kontext (g). Der Tracker rendert unabhängig vom Zustand anderer temporärer UI-Komponenten (z. B. ob die DialogBox gerade sichtbar ist oder nicht).
Referenz:
Datei
1. Spielprojekt
· Klasse GameWindow.GamePanel
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
// 1. World-Space Objekte (mit Kamera-Verschiebung)
Graphics2D cameraView = (Graphics2D) g.create();
cameraView.translate((int) Math.round(-camera.getX()), (int) Math.round(-camera.getY()));
drawTileMap(cameraView);
drawInteractables(cameraView);
player.draw(cameraView);
cameraView.dispose();
// 2. Screen-Space HUD & UI (untransformiert)
drawQuestTracker(g); // Permanent oben links
if (dialogBox.isVisible()) {
drawDialogBox(g); // Modal unten überlagert
}
}