冰雹,堆栈!
我需要知道在复杂类型(对象和精灵的扩展)的列表(向量、数组、字典,任何更快的)中查找项目的最佳方法。
我使用了“干草堆中的针”方法,但似乎速度不够快。
例如,假设我有一组Sprite(实际上是一个池)。
每个精灵都会被添加到舞台并执行一些动作。在那之后,它会死去。
我不想支付处理它(垃圾收集)并每次创建另一个(新)的成本,所以我会将死去的精灵保存在一个集合中。
有时我会调用一个将精灵添加到舞台的方法。
这个 sprite 可以是旧的,如果它已经死了,或者是一个新的,如果池中没有任何空闲的 sprite。
将我推向这个问题的场景之一是粒子系统。
一个“头”粒子在每一帧留下一个粒子“轨迹”,然后爆炸成一大堆闪闪发光的粒子……每一帧……
有时,这需要多达 50.000 个 PNG,包括运动、旋转、alpha、事件调度、缩放等……
但是,这只是一个场景……
目前我正在尝试使用带有链接列表的对象池......
希望运行整个数组/向量或每帧创建新实例并让它们用垃圾收集染色会更快。
有人知道更好/更快的方法吗?