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

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

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


如果我向小行星射击,然后又向另一个小行星射击,则动画将被剪切并转到新的小行星。

有什么帮助吗?

谢谢。

最佳答案

在第二个循环内,您将每次爆炸移动到小行星asteroide[numAst]的位置-您在同一地点玩所有爆炸!

在第一个循环中创建爆炸时,Enable(true)爆炸后只应放置一次爆炸,而不是每次绘制时都放置爆炸。

希望能有所帮助。

关于c++ - 一次多个动画,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3165964/

10-11 21:17