我编写了这段代码来处理使用Glut的键盘,
#include <stdio.h>
#include <GL/glut.h>
void process_Normal_Keys(int key, int x, int y)
{
switch (key)
{
case 27 : break;
case 100 : printf("GLUT_KEY_LEFT %d\n",key); break;
case 102: printf("GLUT_KEY_RIGHT %d\n",key); ; break;
case 101 : printf("GLUT_KEY_UP %d\n",key); ; break;
case 103 : printf("GLUT_KEY_DOWN %d\n",key); ; break;
}
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutKeyboardFunc( process_Normal_Keys );
glutMainLoop();
return 0;
}
当我运行这个程序时,我没有任何东西。有人可以提供帮助
答案 0 :(得分:1)
几点说明:
一个-NORMAL-键盘功能将unsigned char, int, int
作为参数,而不是int, int, int
,你只是在内存中占用更多的位置。
您应该使用glutSpecialFunc
,glutKeyboardFunc
用于普通键,例如'W','A'等等,glutSpecialFunc
是箭头键和逃脱键所以并且正在获得一个函数指针,指向一个具有3 int
s。
键有常量,使用它们更容易:P