【问题标题】:how can we know that we have released memory我们怎么知道我们已经释放了内存
【发布时间】:2011-01-05 00:44:44
【问题描述】:

我创建了一个有两个级别的游戏。现在当我们处于第一级时,我为动画和许多精灵创建精灵表。达到一定分数后,我移动到第 2 级现在这里是另一个精灵表和一个变量很多。

当我从 1 级移动到 2 级时。

[[CCDirector sharedDirector] pushScene:[Level2 node]];

当我在第 2 级失败时,我会使用

回到第 1 级

[[CCDirector sharedDirector] pushScene:[Level1 node]];

精灵表和我之前在 1 级创建的其他精灵会发生什么?如果我重试 1 级,我之前创建的精灵表和精灵会被自动删除吗?或者它们会存在于这个新场景中?

请帮我解决这些问题,因为不了解这一点,我遇到了很多麻烦..

提前谢谢你.. :(

【问题讨论】:

    标签: cocos2d-iphone


    【解决方案1】:

    在 cocos2d 中几乎所有东西都被标记为自动释放。因此,当您创建一个新场景时,它不会被发布,因为它会成为主要场景。一旦它不再是主场景,如果你不特别保留它就会被释放。

    在您上面所说的情况下,我相信两个场景都被保留,因为您像堆栈一样使用导演,将场景推向对方。如果您永远不需要返回到级别 1,您可以使用 CCDirector 的 replaceScene: 方法来代替发布级别 1。

    有一个自定义暂停场景或奖励回合可能是何时使用pushScene: 调用的一个很好的例子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 2015-06-04
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 2017-04-17
      • 2013-10-06
      相关资源
      最近更新 更多