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 *
Kontinuierliche Bewegung benötigt isPressed() (State-Handling). Aktionen wie Interagieren, Menü-Öffnen oder Angreifen dürfen jedoch nur einmal pro Tastendruck feuern. Tastatur-Auto-Repeat des Betriebssystems muss abgefangen werden. Lösung: Ein justPressedKeys-Set registriert ein Event nur dann, wenn die Taste im vorherigen Frame noch nicht gehalten wurde (!pressedKeys.contains(keyCode)). Beim Auslesen (consumeJustPressed) wird der Status konsumiert und sofort gelöscht.
Code-Beispiel (optional)
// In InputHandler.java actionMap.put(name + "_pressed", new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { if (!pressedKeys.contains(keyCode)) { justPressedKeys.add(keyCode); // Nur beim initialen Drücken } pressedKeys.add(keyCode); } }); public boolean consumeJustPressed(int keyCode) { return justPressedKeys.remove(keyCode); // Liefert nur 1x true }
Referenz-Datei / Projekt (optional)
Referenz-Klasse / Interface (optional)
Quellen-Link (optional)
Tags (durch Komma getrennt)
Änderungen speichern
Abbrechen