我正在制作小行星游戏,但一次不能玩多个爆炸。一次只能做一个...
这是我在主循环中调用的代码:
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/