Lighthouse3d.com >> GLUT Tutorial >> Input >> Advanced Keyboard
本节我们会介绍另外4个处理键盘事件的函数.这些函数手把手的把我们从处理自动重复输入按键的问题中释放.
第一个函数允许我们关闭键盘自动重复输入.原型如下:
int glutSetKeyRepeat(int repeatMode);
repeatMode - 开启,关闭和恢复自动重复输入模式.可选值如下:
GLUT_KEY_REPEAT_OFF – 关闭自动重复输入模式
GLUT_KEY_REPEAT_ON – 开启自动重复输入模式
GLUT_KEY_REPEAT_DEFAULT – 重置为默认值
注意,该函数是全局的,该设置会影响所有窗体,不只包括我们创建的窗体.所以当使用完该函数后,最好用重置到用之前的状态.
GLUT提供一个安全途径来禁用键盘按键重复输入的回调函数.这让我们安全的忽略键盘重复,并且不会影响操作系统的其它应用.原型如下:
int glutIgnoreKeyRepeat(int repeatMode);
repeatMode – 0是禁止自动重复输入,正值是允许.
有的时候我们想要停止接收按键重复发生时的回调.另外当你想要在按键释放时做处理,GLUT提供了两个函数来处理按键释放事件.
void glutKeyboardUpFunc(void (*func)(unsigned char key,int x,int y));
void glutSpecialUpFunc(void (*func)(int key,int x, int y));
func – 绑定的回调函数的名字
该绑定函数的参数定义跟上一节的键盘事件一样.