In meiner aktuellen LWJGL-Anwendung verwende ich den GLFW-Fenstereingabe-Handler, den ich mit der Klasse Keyboard.java, die GLFWKeyCallback erweitert, eingerichtet habe. Ich habe meine Tastatureingabeklasse korrekt eingerichtet, aber wenn ich auf einen Schlüssel klicke, wenn ich nicht schnell genug (sehr schnell) klicke, dann registriert er sich als mehrere Klicks. Ich habe eine Dokumentation im folgenden dargestellt:GLFW Tastatureingangsregister als mehrere Klicks
Keyboard Klasse
public class Keyboard extends GLFWKeyCallback {
//Variables
public static boolean keys[] = new boolean[65536];
@Override
public void invoke(long window, int key, int scancode, int action, int mods) {
keys[key] = action == GLFW_PRESS;
}
}
Implementierung
public static void handleInput() {
if (Keyboard.keys[GLFW_KEY_SPACE]) {
System.out.println("Space");
glfwPollEvents();
}
}
Das oben beschriebene Verfahren in der Hauptspielschleife implementiert und wird einmal im Rahmen genannt.
Ergebnis
Initialisiert LWJGL Version: 3.1.2 bauen 29
Raum
Raum
Raum
Raum
Die oben: „S Tempo "sollte jedes Mal ausgegeben werden, wenn ich auf Space klicke, aber wenn ich relativ schnell darauf klicke, dann bekomme ich das obige Ergebnis von vielen" Leerzeichen ".
Fazit: Ist es möglich, dass ein Klick Speicherplatz nur einmal registriert wird, egal wie lange Sie es halten. Danke
Danke für die Antwort, aber ich hatte es bereits geschafft, dies zu beheben. Dies ist jedoch ein viel einfacherer Ansatz dazu. Vielen Dank. –