我正在研究NeHe OpenGL示例,在Eclipse RCP应用程序中使用LWJGL进行OpenGL绑定。
我的OpenGL图形显示在RCP画布内,而不是单独的窗口中。
第07课显示了如何使用键盘。如果我尝试做:
Keyboard.create();
我收到一个错误(OpenGL)"显示"尚未创建。
如果我创建一个OpenGL"显示"使用org.lwjgl.opengl.Display.create(),然后我得到一个新窗口。
那么如何在没有创建新窗口的情况下访问键盘?
答案 0 :(得分: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;}
}