2011-02-22 50 views
0

任何人都可以请帮忙吗?在Android中循环播放粒子

我正在做一个小型的Android游戏,其中有一个发射器在随机方向上发射一个单个粒子,每个游戏的嘀嗒声。我有一个简单的发射器,粒子和主要游戏类。

在我的主游戏类中,我声明了一个例如10​​0个粒子的数组。我的问题是我使用for循环遍历每个游戏的tick数组来更新粒子状态。然而,我的问题是,for循环遍历所有粒子,并且所有粒子都会同时更新,因此会彼此重叠,从而导致屏幕上只有一个粒子。我尝试过不同的循环结构,但没有运气。

任何人都可以请建议一个解决方案或指向我的教程,可能会帮助我解决这个问题。如有必要,我可以发布一些代码。

在此先感谢。

回答

0

这里有一个想法:如何为每个粒子添加一个成员“时间”变量。现在,当你初始化粒子(比如说使用for循环)时,给每个粒子一个-i的出生时间值。所以:

particle[0].time : 0 
particle[1].time : -1 
particle[2].time : -2 
particle[3].time : -3 
particle[i].time : -i 

现在,当您更新在你更新功能每滴答每个粒子,你会更新:

particle[i].time += 1 

这样,颗粒逐渐 “诞生”(T> = 0 )

在你的画,你可以把一个简单的检查:

if (particle[i].time >= 0) // particle has been born 
// draw particle 

希望这有助于。

此外,我建议将其移至:https://gamedev.stackexchange.com/