当尝试在屏幕上单击鼠标时,我正在尝试创建自己的粒子效果(简单)。我认为语言不相关(但我仍在学习)

我的逻辑如下正确吗:


  每次单击时,粒子都会添加到ArrayList中以进行迭代以增加大小,颜色和不透明度


现在,如果我在屏幕上单击多次,这仍然可以工作,因为每组粒子都可以简单地添加到ArrayList中。

但是,这似乎并不高效,因为当第一次粒子爆炸结束时,ArrayList中不再需要它,并且不应该占用内存

有人可以在逻辑上帮助我吗?
动画PNG系列是否比动态创建自己的粒子效果更有效?

谢谢

PS-我不是在创建游戏/应用程序...只是在尝试我正在学习的概念

最佳答案

您应该删除过期的粒子效果。为此,最好使用LinkedList,因为您可以对其进行迭代并在固定时间内删除所有过期的元素。 ArrayList和LinkedList都实现了List接口,因此,如果在代码中使用List,则可以接受其中任何一个。小心避免对链表进行索引访问,因为它很慢;尽可能使用迭代器或for-each循环。

Iterator<ParticleBlast> itr = particles.iterator();
while(itr.hasNext())
{
    ParticleBlast next = itr.next();
    if(next.hasExpired()) itr.remove();
}

07-24 09:48
查看更多