如何提高效率?

Ale*_*yer 6 java oop android

我正在创建一个小行星克隆,但还有一些铃声和口哨声.

截至目前,我有一个ArrayList<Asteroid>屏幕上的所有小行星.每一个都Vector与它相关联并扩展我的genereic GameObject类,它处理绘图和更新以及每个游戏对象共有的其他常见事物.

据说,每当我摧毁一颗小行星时,我都会创建一个新Asteroid物体并将其添加到ArrayList<Asteroid>......当发生这种情况时会有明显的延迟,因为我也会创建爆炸粒子,我认为这是GC.

我的想法是不要动态创建新对象,我可以预先创建它们的池并重新使用它们.

这是正确的想法吗?那么最有组织,最有效的方法是什么?

任何其他想法也会很棒.只是试图减少所有这些对象的创建,因为它肯定会导致明显的滞后.谢谢!

Ale*_*ijk 5

创建一个对象池并重用它们是个好主意.另外我认为你可以切换ArrayListVector,因为Vector是为随机索引进行优化的,你在使用池时会做很多事情.

既然你说每次摧毁一颗小行星,你都会添加一颗新的小行星,看起来你使用了恒定数量的小行星.因此,您可以创建具有恒定数量成员的池.


Cal*_*vin 5

(1)考虑使用Flyweight模式设计您的对象.它是通常用于具有重复特征的对象的图案.这里有一个java代码示例:http://en.wikipedia.org/wiki/Flyweight_pattern

(2)如果您已经知道将要使用多少个对象,那么请考虑将对象创建和其他一些初始化过程包含到加载页面中.