0

我正在研究 NeHe OpenGL 示例,将 LWJGL 用于 Eclipse RCP 应用程序内的 OpenGL 绑定。

我的 OpenGL 图形显示在 RCP 画布内,而不是在单独的窗口中。

第 7 课展示了如何使用键盘。如果我尝试做一个:

Keyboard.create();

我收到一个错误,即(OpenGL)“显示”尚未创建。

如果我用 org.lwjgl.opengl.Display.create() 创建一个 OpenGL“显示”,那么我会得到一个新窗口。

那么如何在创建新窗口的情况下访问键盘呢?

4

1 回答 1

2

由于 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;}

}
于 2011-09-08T00:18:27.580 回答