23
Окт
2017

java обработчик событий клавиатуры lwjgl

слушатель в библиотеке lwjgl устроен так:

class keyboard extends GLFWKeyCallback {
     public void invoke(long window, int key, int scancode, int action, int mods) {
     }
}

Этот слушатель вызывается в 3 случаях если клавиша была нажата, если клавиша была зажата, если клавишу отпустили.

но вот незадача между только нажата и зажата проходит 1 секунда.

запуская в цикле while в методе update(60 обновлений в сек) не получается выделить нажатие(нажатие это когда метод срабатывает 1 раз)

protected void update() {
    if(Input.isKeyPress(GLFW_KEY_ENTER))
        button.create();
}

вот метод Input

public class Input extends GLFWKeyCallback {

    private static boolean[] keys = new boolean[Character.MAX_VALUE];

    @Override
    public void invoke(long window, int key, int scancode, int action, int mods) {
        keys[key] = action != GLFW_RELEASE;
    }

    public static boolean isKeyPress(int key) {
        return ???????????????????????????????????????????????????;
    }

    public static boolean isKeyRepeat(int key) {
        return keys[key];
    }
}

Источник: https://ru.stackoverflow.com/questions/734497/java-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9-%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D1%8B-lwjgl

Тебе может это понравится...

Добавить комментарий