GLFW не обнаруживает половину ключей - PullRequest
0 голосов
/ 28 мая 2020

Следующий код действительно работает в случае клавиши пробела и букв:

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: На самом деле работают только буквы и пробел.

...