OpenGL键盘输入

时间:2015-07-06 11:07:11

标签: opengl lwjgl

我正在尝试为我的应用程序实现一些键输入。例如移动我的相机。我用lwjgl。所以我试过这个:

if(key == GLFW_KEY_A && action == GLFW_PRESS){
                    camera.translate(new Vector3f(+0.5f,0,-0.5f));
                }

现在的问题是,这只执行一次,这意味着我无法通过按住此键来移动相机。

所以我尝试过这样的事情:

if(key == GLFW_KEY_D && action == GLFW_PRESS){

                    while(action != GLFW_RELEASE){
                        a.getView().translate(new Vector3f(-0.5f,0,+0.5f));

                    }   
                }

由于无限循环而导致我的应用程序崩溃。

Mabe有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我特别不熟悉GLFW,但发现GLFW_REPEAT可能是你正在寻找的东西(至少可以说它的文档)。

如果这不起作用,那么使用影子寄存器进行键盘输入的情况并不少见,您可以在其中更新每个感兴趣的键的状态。然后你可以为自己提供一个bool keyIsDown(keytype_t key);函数,你可以轮询每一帧。