Keller-Dev
Docs
· Java & Hytale
Übersicht
Neuer Eintrag
Eintrag bearbeiten
Titel *
Kategorie *
Java Core
Java OOP
Java Advanced
Plugin-System
Event-System
UI-System
Sonstiges
Erklärung / Inhalt *
In 2D-Spielen mit scrollender Kamera müssen zwei Arten von Zeichenoperationen unterschieden werden: Welt-Objekte (Tiles, Player, NPCs) und UI/HUD-Elemente (Dialogfenster, Lebensbalken). Umsetzung:Welt-Komponenten: Werden auf der transformierten Graphics2D-Kopie (cameraView) gezeichnet und scrollen mit der Kamera mit. UI-Elemente: Werden direkt auf dem ursprünglichen Graphics-Objekt (g) nach dem Schließen/Dispose der Kamera-View gerendert. Dadurch bleiben sie an einer festen Bildschirmposition (Screen-Space), unabhängig von der Spielerposition.
Code-Beispiel (optional)
@Override public void paintComponent(Graphics g) { super.paintComponent(g); // 1. World-Space Rendering (transformiert) 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(); // Transformed Context verwerfen // 2. Screen-Space / HUD Rendering (untransformierte Original-Graphics) if (dialogBox.isVisible()) { drawDialogBox(g); } }
Referenz-Datei / Projekt (optional)
Referenz-Klasse / Interface (optional)
Quellen-Link (optional)
Tags (durch Komma getrennt)
Änderungen speichern
Abbrechen