[英]if() doesn't seem to work - c++ opengl idle function
我想做一點動畫,一座有交通信號燈女巫的橋警告橋何時打開(黃燈),橋動畫時(打開和向下移動)紅燈警告,橋下來時綠燈警告。 現在,我只希望它一遍又一遍地重復相同的動畫
在空閑函數中,我有以下代碼:
if(bridgeAnimating==0);
{
printf("\nwtf,%d\n",bridgeAnimating);
fflush(stdout);
startBridge=1;
}
animateBridge();
這就是我得到的輸出:wtf,0 wtf,1 wtf,1 ... etc
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;
}
}
我在文檔中檢查了這2個變量的其他引用,但沒有任何引用。 該算法一定有問題,但我無法弄清楚。 我有很多全局變量,這是我添加的最后一個變量,堆棧是否已滿? 怎么了
你的問題是這個
if(bridgeAnimating==0);
最后的分號表示一個空語句,該語句由if語句控制。 擺脫; 它將按您的預期工作。
刪除結尾的分號:
if(bridgeAnimating==0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.