0

所以我有一个我正在使用 cocos2d 开发的游戏。游戏涉及许多敌方弹丸,以及一些与敌方弹丸相撞的友军弹丸。

敌方和友方射弹都是具有以下属性的对象:

  • sprite(用于 CCMoveTo、动作)
  • 命中框 (CGRect)
  • 旅行时间
  • 弹道

它还具有计算旅行时间、轨迹和其他基于随机生成位置确定的方法的方法。

目前我正在做的是在每次产生射弹时创建这些对象,将它们添加到数组(即friendlyProjectiles,enemyProjectiles),遍历这些以进行碰撞检测,并在它们碰撞时释放对象。

在这里为对象使用缓存会更好吗?

例如:

  • 在启动时创建 100 个敌方射弹物体,5 个友军射弹物体
  • 将这些对象放在堆栈上
  • 当产生弹丸时,我没有创建对象,而是从堆栈中弹出
  • 当弹丸碰撞并被摧毁时,我没有释放对象,而是将其从层和数组中移除,然后将其推回堆栈
  • 当弹丸产生时,我仍然需要计算它的轨迹、速度、距离等,但我不必重新创建对象

这是一个好方法吗?

我对Objective C比较陌生,我会遇到我试图同时推送和弹出堆栈的问题吗?

4

1 回答 1

2

你应该问的主要问题是:

您现在的操作方式是否存在性能问题?

如果不是,那为什么要把事情复杂化。

如果有问题,请分析应用程序以查看问题所在。
如果是这样,那么是的,这听起来是合理的方法。

于 2013-06-17T18:45:01.277 回答