使用 OpenGL / GLUT 如何检测是否同时按住两个键,例如“a”和“j”?
(这个程序需要用 OSX GCC、Windows GCC、Windows VS2005 编译,所以请不要依赖操作系统。)
尝试以下操作:
glutIgnoreKeyRepeat
仅获取物理 keydown/keyup 事件glutKeyboardFunc
注册监听 keydown 事件的回调。glutKeyboardUpFunc
注册监听 keyup 事件的回调。bool keystates[256]
数组来存储键盘按键的状态。keystates[key] = true
.keystates[key] = false
.(keystates['a'] || keystates['A']) && (keystates['j'] || keystates['J'])
。朝那个方向看。虽然我没有测试过,但它应该可以工作。您可能还需要glutSpecialFunc
并glutSpecialUpFunc
接收“特殊”键的消息。
另外,请注意 GLUT 真的是老东西了,还有更好的选择。
如果您的意思是更简单且与过剩无关的输入函数,则通过“更好的选择”,然后使用 GetAsyncKeyState 函数...