2010-07-02 66 views
0

我正在製作一個小行星遊戲,但我無法一次玩一次以上的爆炸。剛剛獲得做一次一個......多次動畫一次

這是我的代碼在主循環撥打:

for(i = 0; i < MAX_SHOTS; i++) { 
    for(j = 0; j < MAX_ASTEROIDS; j++) { 
     if(shot[i].CheckCollision(asteroide[j])) { 
      shot[i].SetPos(-100, 0); 
      explosionSnd.Play(); 

      numAst = j; 
      explosion[numExp++].Enable(true); 

      if(numExp == MAX_EXPLOSIONS-1) { 
       numExp = 1; 
      } 
     } 
    } 
} 

for(i = 1; i < MAX_EXPLOSIONS; i++) { 
    if(explosion[i].Enable()) { 
     explosion[i].SetPos(asteroide[numAst].GetX(), asteroide[numAst].GetY()); 
     explosion[i].Draw(); 
     if(explosion[i].GetFrame() == 5) { 
      explosion[i].Enable(false); 
     } 
    } 
} 

如果我拍的小行星後,我拍另一個,動畫被切斷並前往新的小行星。

任何幫助?

謝謝。

+0

看起來不像你有多少爆炸活躍的計數。那麼你是如何製造新的爆炸呢?你在尋找第一個「殘疾人」爆炸並改變它嗎? – 2010-07-02 13:24:08

+0

我假設numExp是這樣做的 - 儘管它只是假設,將永遠不會超過MAX_EXPLOSIONS可見一次:) – deanWombourne 2010-07-02 13:26:40

+0

當然deanWombourne是正確的:) – Puyover 2010-07-02 13:31:59

回答

4

在你的第二個循環中,你將每個爆炸移動到小行星的位置asteroide[numAst] - 你正在玩所有的爆炸,只是在同一個地方!

當你在第一個循環中創建時,你不應該每次繪製它時,只應該放置一次Enable(true)之後的爆炸。

希望有所幫助。

+0

謝謝,我已經與你說的管理xD 最後,我去除了爆炸跟隨小行星,效果好多了 – Puyover 2010-07-02 13:32:55