键盘处理程序与Glut

时间:2014-07-22 13:51:53

标签: c linux glut

我编写了这段代码来处理使用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;
}

当我运行这个程序时,我没有任何东西。有人可以提供帮助

1 个答案:

答案 0 :(得分:1)

几点说明:

  1. 一个-NORMAL-键盘功能将unsigned char, int, int作为参数,而不是int, int, int,你只是在内存中占用更多的位置。

  2. 您应该使用glutSpecialFuncglutKeyboardFunc用于普通键,例如'W','A'等等,glutSpecialFunc是箭头键和逃脱键所以并且正在获得一个函数指针,指向一个具有3 int s。

  3. 的函数
  4. 键有常量,使用它们更容易:P