2013-04-03 160 views
0
for(x = mapEdge.getMinX() ; x < mapEdge.getMaxX(); x += 11){   
      if(once){ 
       yLoop = mapEdge.getMinY() - yLoop; 
      } 
      for(y = yLoop ; y == yLoop - 11; y -= 11){ 
       g.drawImage(grass, x, y); 
      } 
      yLoop = y; 
      once = true; 
    } 

for(y = yLoop ; y == yLoop - 11 ; y -= 11){ 
    g.drawImage(grass, x, y); 

} 

這個循環是不是在我的代碼運行在所有沒有運行我的遊戲;它完全繞過而不做任何事情。for循環的Java

+1

你應該花一分鐘修改什麼的'for'聲明三個表達式的意思是...... –

+0

您可以編輯你的答案所有你想要的。 rgettman的答案仍然是正確的。 – DigCamara

回答

2

初始化爲yyLoop,但條件爲y == yLoop - 11,這在第一次顯然是錯誤的,所以循環從不運行。

我懷疑你想有一個條件是這樣的:

for(y = yLoop ; y > yLoop - 11 ; y -= 11) 
+0

確實。但在這一點上,循環只迭代一次... –

+0

我有嘮叨的懷疑,你描述的循環不完全正確。 – DigCamara

+0

@Oli,你是對的,就像我寫的那樣,它只會執行一次。但我覺得這個問題更多的是在for循環中使用'>'代替'=='。從邏輯上講,條件應該是'y> = 0',以避免跑出地圖邊緣。 – rgettman