Следующий код действительно работает в случае клавиши пробела и букв:
if (Input.keys_pressed[GLFW_KEY_SPACE])
{
this.bnumber = (this.bnumber + 1) % 5;
Input.keys_pressed[GLFW_KEY_SPACE] = false;
}
Но не реагируйте на стрелки, сдвиги, ввод, удаление, клавиши выхода, например:
if (Input.keys_pressed[GLFW_KEY_UP])
{
this.bnumber = (this.bnumber + 1) % 5;
Input.keys_pressed[GLFW_KEY_UP] = false;
}
вообще не работает. Вы знаете, как это исправить?
Я использую lwjgl в Fedora 31.
Класс обратного вызова:
public class Input extends GLFWKeyCallback {
public static boolean[] keys_pressed = new boolean[65536];
public void invoke(long window, int key, int scancode, int action, int mods)
{
keys_pressed[abs(key)] = action != GLFW.GLFW_RELEASE;
}}
И это используется в коде следующим образом:
glfwSetKeyCallback(this.window, new Input());
EDIT: клавиши Page Up и page down также не работают.
EDIT2: На самом деле работают только буквы и пробел.