2010-07-02 74 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