我的按键代码适用于所有键盘字母,但不适用于 Enter 或 Tab 之类的键。
glfwSetCharCallback(window, character_callback);
void character_callback(GLFWwindow* window, unsigned int codepoint)
{
char c = codepoint;
printf("%c", c);
}
当我按下 Tab 或 Enter 时,该功能甚至都没有运行,但是它确实适用于 Space 栏,我该怎么办关于接收所有按键?
答案 0 :(得分:2)
您应该使用glfwSetKeyCallback
而不是glfwSetCharCallback
,因为您对键而不是字符感兴趣。请参见Keyboard Input docs和list of keyboard key macros。
我不确定为什么 Tab 和 Enter 为什么不产生字符:它们通常在以下位置分别产生0x09
和0x0d
其他工具包(例如freeglut和Qt)。但是显然,这就是GLFW希望的样子,请参见问题Backspace not reported to character callbacks:
elmindreda于2017年4月12日发表评论•
对Enter和Backspace之类的键使用键回调。它提供新闻,重复和发布事件。