Cześć. Uzywam LWJGL i jest tam klasa która obsługuje wejście z klawiatury.
public void poll(){
if (Keyboard.isKeyDown(Keyboard.KEY_UP)){
currentButton.shiftLeft();
}
if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)){
currentButton.shiftRight();
}
}
Ale jest jeden problem. Mianowicie kiedy naciskam na guzik przez mniej niż pół sekundy, ta funkcja została już uruchomiona ok 30 razy, czyli przejechałem menu od początku do końca 8 razy ułamku sekundy. Domyślam się że rozwiązaniem jest jest funkcja keyPressed() która zwraca true dopiero wtedy kiedy klawisz zostanie puszczony, ale niestety nie ma jej w implementacji Keyboard.
EDIT: Próbowałem czegoś takiego i przed chwilą znalazłem dokładnie taki sam kawałek kodu, który powinien działać, jednak nie działa u mnie:
public void poll(){
Keyboard.next(); //prawdopodobnie dlatego, ale nie moge tutaj wstawic loopa bo mi będzie gra lagować.
if(Keyboard.getEventKeyState()){
if (Keyboard.getEventCharacter() == Keyboard.KEY_UP)
currentButton.shiftLeft();
if (Keyboard.getEventCharacter() == Keyboard.KEY_DOWN)
currentButton.shiftRight();
}
}