我正在制作一个小行星游戏,但我不能一次玩多个爆炸。只要一次做一个......
这是我在主循环中调用的代码:
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 :(得分:4)
在你的第二个循环中,你将每个爆炸移动到小行星asteroide[numAst]
的位置 - 你正在播放所有爆炸,只是在同一个地方!
你应该只在Enable(true)
之后定位爆炸,当它在第一个循环中创建时,而不是每次绘制时。
希望有所帮助。