我想检查按键事件,例如按下/按下...
但是我创建的要调用的函数会得到一个“无符号字符”。我可以使用 来检查 W/A/S/D 之类的键key == 'w'
,但我不知道如何检查其他键。
是否有可用字符的列表,例如“\n”?
您可以在此处找到字符转义序列列表。
请注意,必须使用glutSpecialFunc()
/处理某些键glutSpecialUpFunc()
,以下适用于其处理程序:
key 参数可以采用以下定义的常量值之一:
- GLUT_KEY_F1、GLUT_KEY_F2、...、GLUT_KEY_F12 - F1 到 F12 键
- GLUT_KEY_PAGE_UP、GLUT_KEY_PAGE_DOWN - Page Up 和 Page Down 键
- GLUT_KEY_HOME, GLUT_KEY_END - Home 键和 End 键
- GLUT_KEY_LEFT、GLUT_KEY_RIGHT、GLUT_KEY_UP、GLUT_KEY_DOWN - 箭头键
- GLUT_KEY_INSERT - 插入键
您正在要求转义序列。
这是 C++ 非图形字符及其转义序列的完整列表。
如果我理解正确,没有系统独立的方式来获取您需要的信息。我认为,您要查找的内容称为扫描码,并且大多数系统都会有一种获取它的方法“在 Unix 下,如果您在窗口中运行,它将是 X 库中的东西,而在 Windows 下,它也可能在 Windowing 库中。您将得到的是扫描码加上一些指示各种键状态的位,例如 shift、control 和 alt;每次任何键更改状态时,窗口系统都会生成一个事件。
如果您没有在窗口中(或在您自己的窗口中)运行,那么如果您直接从终端读取,可能仍然可以获得某种关键状态,尽管我不太熟悉这些可能性。(请记住,从历史上看,输入接口是为通过串行线路读取而设计的,而这种信息在 C++ 中根本不可用。)