C++ Can';t在openGL&;中设置我想要的精确对象的动画;过剩

C++ Can';t在openGL&;中设置我想要的精确对象的动画;过剩,c++,animation,opengl,glut,C++,Animation,Opengl,Glut,当我在特定对象上单击右键时,它开始设置动画。但是,无论我单击同一个对象来停止它-正在设置动画的对象-还是任何其他未设置动画的对象,动画对象都会停止。但是,我希望仅当我单击对象时才停止对其设置动画 我如何解决这个问题?这是我的onClick和onTimer函数。我应该在结构中使用动画布尔吗?如果是,怎么做 if(button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) { for(i=0; i<MAX; i++){

当我在特定对象上单击右键时,它开始设置动画。但是,无论我单击同一个对象来停止它-正在设置动画的对象-还是任何其他未设置动画的对象,动画对象都会停止。但是,我希望仅当我单击对象时才停止对其设置动画

我如何解决这个问题?这是我的onClick和onTimer函数。我应该在结构中使用动画布尔吗?如果是,怎么做

if(button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) {

        for(i=0; i<MAX; i++){
            if(mx >= arr[i].xB + 0 && mx <= arr[i].xB + 130 && my <= arr[i].yB + 17 && my >= arr[i].yB + - 17){
                animation = !animation;
                animationNumber = i;
                printf("TRUE\n");
            }
        }

void onTimer( int v) {

    glutTimerFunc( TIMER_PERIOD, onTimer, 0) ;


    if(animation){
        arr[animationNumber].xB++;
    if(arr[animationNumber].xB >= 640)
        arr[animationNumber].xB -= 1410;
    }

    glutPostRedisplay() ; // display()

}
if(按钮==GLUT\u RIGHT\u按钮和状态==GLUT\u DOWN){
对于(i=0;i=arr[i].xB+0&&mx=640)
arr[animationNumber].xB-=1410;
}
glutPostRedisplay();//显示()
}

使用数组
bool animation[MAX]
代替单个布尔变量
animation
和索引变量
animationNumber

使用此解决方案,每个对象都有自己的状态,该状态指示它是“动画化”还是静止

bool动画[MAX]={};
按下鼠标按钮时,更改阵列中对象的相应状态:

if(按钮==GLUT\u RIGHT\u按钮和状态==GLUT\u DOWN)
{

对于(i=0;i=arr[i].xB+0&&mx标题错误。问题出在描述中。我不希望在单击另一个对象时停止动画对象。这与OpenGL有什么关系?我正在使用数组中的OpenGLStore
animationNumber
绘制火箭或其他东西。在
onClick
中检查数组中的
I
。如果是-删除它,否则添加它。在
onTimer
中迭代整个数组。仍然不工作。