我们是一对夫妇做游戏。游戏实体的数据存储在嵌套数组中。顶层数组包含数组,每个数组对应一个实体。实体是指存储在数组中的游戏对象的参数和数组中引用的椋鸟对象。AS3,回收椋鸟物体
这些子数组有一个对Starling影片剪辑或Starling精灵的引用,以及对该实体约15个其他变量的引用。因此,变量不会以各种原因存储在movieclip/sprite中。 Blitting的可能性就是其中之一。
问题是如何组织这个最好的方式,并最终实现回收椋鸟对象以减少垃圾收集问题。 我有三个建议,但我知道,别的可能会更好。
1) 具有用于每个类对象的一个“墓地”容器:一个用于小行星,一个用于playershots,一个用于.... 每当一个实体被破坏,相应的对象将转到正确墓地。每当创建一个相同类的实体时,如果它持有任何一个,则从相应的容器中重用一个。
2) 所有被破坏的动画片段和精灵的一个大容器。 每当一个精灵或动画片段产生时,如果该容器包含任何东西,则从该容器中重用该对象。还应该设置正确的动画。我不知道这是否需要大量的CPU或者可能。
3) 让垃圾回收处理破坏的影片剪辑和精灵。不要回收它们。
我正在使用flashpunk。所以,我试图使用这种回收的东西来提高游戏性能。但是,游戏变得如此复杂,我也需要像你这样的系统,我的意思是将实体的东西引用到数组和类似的东西上......但是,回收的东西已经成为一个真正的问题,我尝试了很多东西解决这个问题,但是每个解决方案都会造成另一个问题所以,我放弃了使用循环... –