【问题标题】:Removing MANY CCSprites删除许多 CCSprite
【发布时间】:2011-07-01 19:01:43
【问题描述】:

嘿,伙计们,姑娘们。 我有一种方法可以创建 CCSprite 类类型的雨粒子、微小图像。 一切运行良好,当云下雨时,它们会下很多 CCSprites 粒子,直到它们离开垂直的 winsize 空间。 一旦他们离开了垂直的 winsize 空间,iphone 模拟器就会开始滞后,因为它会移除每次下雨的 CCSprite。

我认为问题在于它们要删除的 CCsprite 太多,而不是实际需要将它们放在内存中。

我删除精灵的方法每秒调用 60 次。我尝试将删除频率更改为 1/1 秒,但无济于事,因为一次删除的精灵更多...

我该如何解决这个问题,或者我没有有效地使用 CCsprite,有没有更好的类可以使用?

【问题讨论】:

  • 我没有 Cocos 2D 的经验,所以这可能是一个无关紧要的问题,但你确定你在重用 CCSprite 对象吗?如果您正在重复使用它们并且总大小没有像您所说的那样具有破坏性,那么您可以让它们保持活力。
  • 我没有重用精灵。当云下雨时,它会产生大约 60 个雨粒子——每个粒子都是一个单独的 ccsprite。我刚读到这个帖子:stackoverflow.com/questions/4296542/… 它有一个很好的解释来“重用”这些精灵,而不是每次云下雨时删除和重新创建它们(大约每 2 秒)。
  • 你不能把精灵从视图底部移回顶部吗?这样你就不需要分配和释放这么多的 ccsprite。

标签: objective-c memory-management memory-leaks cocos2d-iphone sprite


【解决方案1】:

有一个粒子示例..是雨粒子..

每秒调用该函数 30 次..我不确定为什么删除会滞后..

【讨论】:

    【解决方案2】:

    为了模拟下雨,看看 cocos2d 中的粒子效果(有一个下雨的例子)。它应该更有效,更易于创建和使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      相关资源
      最近更新 更多