Как получить доступ к клавиатуре в приложении Eclipse RCP / LWJGL? - PullRequest
0 голосов
/ 05 августа 2011

Я работаю над примерами NeHe OpenGL, используя LWJGL для привязки OpenGL внутри приложения Eclipse RCP.

Моя графика OpenGL отображается внутри холста RCP, а не в отдельном окне.

Урок 07 показывает, как пользоваться клавиатурой. Если я попытаюсь сделать:

Keyboard.create();

Я получаю ошибку, что (OpenGL) "Display" не был создан.

Если я создаю OpenGL «Display» с помощью org.lwjgl.opengl.Display.create (), то я получаю новое окно.

Так как мне получить доступ к клавиатуре без создания нового окна?

1 Ответ

2 голосов
/ 08 сентября 2011

Вы не можете использовать клавиатуру без дисплея, потому что LWJGL работает за кулисами.Лучший способ - просто использовать события AWT.Вы можете написать свой собственный класс ввода, который может выглядеть примерно так:

public class Input implements KeyListener {
    private boolean aDown; //is the A key down?
    //Ect, for all needed keys
    public void keyPressed(KeyEvent ke) {
        switch (ke.getKeyCode()) {
            case KeyEvent.VK_A: aDown = true; break;
            //and so on for all other needed keys.
        }
    }

    public void keyReleased(KeyEvent ke) {
        switch (ke.getKeyCode()) {
            case KeyEvent.VK_A: aDown = false; break;
            //and so on for all other needed keys.
        }
    }

    public void keyTyped(KeyEvent ke) {} //Do nothing

    public void isADown() {return aDown;}

}
...