键盘有两组按钮:可以用 ASCII 码表示的按钮和不能用 ASCII 码表示的按钮。可以用 ASCII 表示的那些在按下时返回 1 个字节,那些不能返回两个字节的第一个是NULL
glut 通过为您提供两组处理键盘事件的函数来抽象这一点:一组处理普通的 ASCII 标准按钮glutKeyboardFunc
,另一组处理特殊的两字节按钮 glutSpecialFunc
特殊功能具有常用键盘特殊按钮的常量:
GLUT_KEY_F1
:0x0001,
GLUT_KEY_F2
:0x0002,
GLUT_KEY_F3
:0x0003,
GLUT_KEY_F4
:0x0004,
GLUT_KEY_F5
:0x0005,
GLUT_KEY_F6
:0x0006,
GLUT_KEY_F7
:0x0007,:0x0007,
GLUT_KEY_F8
:0x0008,
GLUT_KEY_F9
:0x0009,
GLUT_KEY_F10
:0x000a,
GLUT_KEY_F11
:0x000b,
GLUT_KEY_F12
:0x000c,
GLUT_KEY_LEFT
:0x0064,
GLUT_KEY_UP
:0x0065,
GLUT_KEY_RIGHT
:0x0066,
GLUT_KEY_DOWN
:0x0068,
GLUT_KEY_PAGE_UP
:0x0067 ,
GLUT_KEY_PAGE_DOWN
:0x0069,
GLUT_KEY_HOME
:0x006A,
GLUT_KEY_END
:0x006B,
GLUT_KEY_INSERT
:0x006C,
GLUT_KEY_REPEAT_OFF
:0x0000,
GLUT_KEY_REPEAT_ON
:0x0001,
GLUT_KEY_REPEAT_DEFAULT
:0x0002。
鼠标点击可以用 处理,glutMouseFunc
与鼠标按钮相关的常量是
GLUT_LEFT_BUTTON
::0x0000,
GLUT_MIDDLE_BUTTON
:0x0001,
GLUT_RIGHT_BUTTON
:0x0002
glut 还可以处理glutJoystickFunc
具有以下常量的
操纵杆GLUT_HAS_JOYSTICK
::0x0264,
GLUT_OWNS_JOYSTICK
:0x0265,
GLUT_JOYSTICK_BUTTONS
:0x0266,
GLUT_JOYSTICK_AXES
:0x0267,
GLUT_JOYSTICK_POLL_RATE
:0x0268,
GLUT_JOYSTICK_BUTTON_A
:0x0001,
GLUT_JOYSTICK_BUTTON_B
:0x0002,
GLUT_JOYSTICK_BUTTON_C
:0x0004,
GLUT_JOYSTICK_BUTTON_D
:0x0008。
如果您使用的是游戏鼠标或带有更多按钮的键盘/操纵杆,您可以通过将按下的按钮输出到控制台来测试每个按钮返回的内容,然后直接在代码中使用此值来了解是否按下了其中一个按钮