if()似乎不起作用--c ++ opengl idle函数

Geo*_*nic 0 c++ windows if-statement

我想做一个小动画,一座桥上有一个交通灯女巫警告当桥打开(黄灯),红灯,而桥是动画(只是移动你和下来)和绿灯,当它下来.现在我只想让它一遍又一遍地重复相同的动画

在idle函数中我有这个代码:

if(bridgeAnimating==0);
{
   printf("\nwtf,%d\n",bridgeAnimating);
   fflush(stdout);
   startBridge=1;
}
Run Code Online (Sandbox Code Playgroud)

animateBridge();

这就是我得到的输出:wtf,0 wtf,1 wtf,1 ......等

bridgeAnimating是一个全局变量,例如startBridge int startBridge = 0; int bridgeAnimating = 0;

这是功能:

void animateBridge()
{
    float static speed=0.25;
    int static upwards=1;
    double static warnTime=teid;

    warnTime-=dt;

    if(startBridge==1)
    {
        upwards=1;
        bridgeAnimating=1;
        warnTime=teid;
        startBridge=0;
        //printf("Here:Animating=%d",bridgeAnimating); //if un-commented this gets printed!!!
    }
    if(bridgeAngle<30 && upwards==1 && warnTime<=0)
    {
        bridgeAngle+=speed;
        red=2;
        green=0.9;
        orangeRed=0.9;
        orangeGreen=0.6;
        bridgeAnimating=1;
        printf("Upwnwards");
    }else if(bridgeAngle>0 && upwards==0 && warnTime<=0) 
    {
        bridgeAngle-=speed;
        red=2;
        green=0.9;
        orangeRed=0.9;
        orangeGreen=0.6;
        bridgeAnimating=1;
        printf("Downwards");
    }else if(warnTime>0)
    {
        orangeRed=2;
        orangeGreen=1.19;
        red=0.9;
        green=0.9;
        bridgeAnimating=1;
        //printf("Here"); //This gets printed if "un-commented"
    }else
    {
        red=0.9;
        green=2;
        orangeRed=0.9;
        orangeGreen=0.6;
        bridgeAnimating=0;
        printf("anim 0");//this doesn't print out
    }

    if(bridgeAngle>=30)
    {
        upwards=0;
    }

}
Run Code Online (Sandbox Code Playgroud)

我检查了文档中有关这两个变量的其他参考文献,但没有任何参考文献.算法一定有问题,但我无法弄明白.我有很多全局变量,这是我添加的最后一个是堆栈可能已满?这有什么不对?

jco*_*der 7

你的问题是这个

   if(bridgeAnimating==0); 
Run Code Online (Sandbox Code Playgroud)

末尾的分号表示一个空语句,这是由if语句控制的所有语句.摆脱; 它会像你期望的那样工作.