c - GLUT 无法正确检测到超过 2 个按键?

标签 c opengl keyboard glut

我正在尝试使用(免费)GLUT 制作一个小游戏。我知道它很旧并且有更好的选择,但目前我更愿意坚持使用它并尽可能多地使用它。我用 C 编程。

我目前正在尝试让 GLUT 正确检测我按下的所有键。 我使用 glutKeyboardFunc、glutKeyboardUpFunc、glutSpecialFunc 和 glutSpecialUpFunc 来检测按下的键,并将它们的状态存储在我创建的一个短数组中(我目前只有 5 个可用键,所以我只是为它们创建了一个特定的数组)。

但是,虽然对于 2 个或更少的按键一切正常,但游戏无法正确检测到 3 个或更多的按键。虽然对于某些键,它可以正确检测到组合(实际上只发生在 1 个特定组合上),但对于其他键,功能根本不会检测到我按下的第三个键。

我检查了我的代码几次,确实有效的组合没有什么特别之处。 我还让 glutKeyboardFunc 和 glutSpecialFunc 直接打印它们收到的每个按键,看起来它们在我按下超过 2 个键后就停止工作了。

这是 GLUT 的已知问题还是什么?我在谷歌上搜索了很多,但没有找到有类似问题的人。

最佳答案

我不是很喜欢 GLUT 但据我所知,但你应该确保你的键盘同时支持 2 个以上的输入键。此功能称为 n-key rollover . This页面说,2 键翻转可能是某些键盘的常见值,但您不需要相信此来源。

关于c - GLUT 无法正确检测到超过 2 个按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6799692/

相关文章:

c - 在二维数组中找到最大的簇

c++ - 我应该始终对 OpenGL 中的所有纹理使用 GL_ARGB 格式吗?

c++ - Winapi 专用鼠标/键盘

python - 在python中轮询键盘(检测按键)

ios - iOS 中的 UIKeyboard 字母单击操作

c - 为学生 ID 和分数生成正确的输出并找到最大值和最小值?

c - 使用 fread 在单个缓冲区中读取二维数组的不同行

java - 如何调试 JNI/C 库?

c++ - OpenGL - 对象转换和 VBO

java - 使用单个 FrameBuffer 实现多个 Shader 效果会导致伪影