在GLUT中,我如何将一个动作绑定到“任意键”上?

那么,这听起来很可笑,但逻辑逃避了我。 我已经在OpenGL中绘制了我的立方体,并且如果按下键盘上的任何键 ,我想将它翻译成右侧。 我知道如何做这个特定的键,但不是在一个function的所有键? 我必须为每个密钥都编码吗?

我想使用glutSpecialFuncglutKeyboardFunc ? 有没有更简单的方法呢?

Solutions Collecting From Web of "在GLUT中,我如何将一个动作绑定到“任意键”上?"

使用glutSpecialFuncglutKeyboardfunction是正确的方法。 每按一次键,其中一个function就会注册。

例如:

 void pressKey(unsigned char key, int x, int y){ if(key=='w') close program (for example); else movecube; } int main(int argc, char **argv) { glutInit(&argc, argv); initGL(); glutCreateWindow("WINDOW"); glutSpecialFunc(pressKey); glutKeyboardFunc(pressKey); glutMainLoop(); return 1; } 

只要按下一个键,就会调用pressKey函数,并移动立方体。 无论如何,这将无法工作的一些键(ALT,CTRL,SHIFT或CAPSLOCK)。