Java Core
Input-Blocking & Abfang-Logik bei aktiven UI-Modals
Wenn ein UI-Element (wie eine Dialogbox) aktiv geöffnet ist, müssen Interaktionen mit der Spielwelt konsumiert werden, um unbeabsichtigte Doppel-Aktionen (z. B. sofortiges erneutes Ansprechen eines Objekts oder Weiterschalten beim Schließen) zu vermeiden. Mechanismus: Ein E-Tastendruck schließt im ersten Schritt lediglich ein offenes Modal. Erst wenn dialogBox.isVisible() auf false steht, wird im nächsten Frame wieder die Umkreis-/Raycast-Prüfung auf Objekte in Blickrichtung ausgeführt.
Referenz:
Datei
1. Spielprojekt
· Klasse InteractionSystem
public static void tryInteract(Player player, InputHandler input, List<InteractableObject> objects, DialogBox dialogBox) {
if (!input.consumeJustPressed(KeyEvent.VK_E)) {
return;
}
// Modal schluckt Tastendruck priorisiert
if (dialogBox.isVisible()) {
dialogBox.hide();
return;
}
// Normale Objektprüfung davor...
}