一次多个动画

时间:2010-07-02 13:15:16

标签: c++ sdl

我正在制作一个小行星游戏,但我不能一次玩多个爆炸。只要一次做一个......

这是我在主循环中调用的代码:

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);
        }
    }
}

如果我向小行星射击并且在我射向另一个小行星后,动画将被切割并转移到新的小行星。

任何帮助?

谢谢。

1 个答案:

答案 0 :(得分:4)

在你的第二个循环中,你将每个爆炸移动到小行星asteroide[numAst]的位置 - 你正在播放所有爆炸,只是在同一个地方!

你应该只在Enable(true)之后定位爆炸,当它在第一个循环中创建时,而不是每次绘制时。

希望有所帮助。