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

时间:2011-02-06 13:47:19

标签: opengl glut

我正在使用游戏手柄作为游戏的输入,我想用按键移动相机。这有效,但除非我释放游戏手柄键并再次按下它,否则相机不会继续移动。如何在按下键的情况下让相机继续移动?

这是我的游戏手柄功能:

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();

2 个答案:

答案 0 :(得分:3)

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 :(得分:0)

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