OpenGL,GLUT:如何判断手柄键是否处于活动状态(按下)?

问题描述:

我在游戏中使用游戏手柄作为输入,并且我想通过按键移动相机。这可以工作,但相机不会继续移动,除非我释放游戏手柄并再次按下它。如何使相机在按下按键的情况下继续移动?OpenGL,GLUT:如何判断手柄键是否处于活动状态(按下)?

这里是我的手柄FUNC:

void gamepad (unsigned int buttonMask, int x, int y, int z){ 

    //left 
    if(x<-7){ 

     moveLeftSwitch=1; 
     printf("left\n"); 

     camara.trasladar_left_right((-speedT*10)); 
    } 

    if (x==-7){ 

     moveLeftSwitch=0; 
    } 
    //right 
    if(x>-7){ 
     printf("right\n"); 

    } 

    //up 
    if(y<-7){ 
     printf("up\n"); 
     if(camara.trasladar_front_back(speedT)){ 

     } 

    } 

    //down 
    if(y>-7){ 
     printf("down\n"); 
     camara.trasladar_front_back(-speedT); 

    } 


} 

和回调我用:

glutJoystickFunc(gamepad, 300); 
glutForceJoystickFunc(); 

if(buttonMask & GLUT_JOYSTICK_BUTTON_A) { 
    printf("button A is pressed "); 
} 
if(buttonMask & GLUT_JOYSTICK_BUTTON_B) { 
    printf("button B is pressed "); 
} 
if(buttonMask & GLUT_JOYSTICK_BUTTON_C) { 
    printf("button C is pressed "); 
} 
if(buttonMask & GLUT_JOYSTICK_BUTTON_D) { 
    printf("button D is pressed "); 
} 

here

+1

那些不会总是回归真实?我相信你想用AND来掩盖。 – Maister 2011-02-06 14:11:16

插入glutForceJoystickFunc();在你的计时器功能和问题解决。