0

我在 cocos2d 中创建了一个级别,并且屏幕上有一个暂停按钮。单击暂停屏幕将打开菜单(恢复、重新启动、设置)。我希望当我单击重新启动菜单时,我的关卡将从开始开始。我已经尝试过删除该图层类并再次调用它,但它没有用。我试图替换场景。它也没有工作。我怎样才能做到这一点?我已经尝试过了,它有效。

[[CCDirector sharedDirector] resume];
    [[CCDirector sharedDirector] pushScene:[HelloWorldLayer node]];

但它写的是我一遍又一遍地调用pushScene。它会影响我的游戏吗?因为到目前为止,我现在正在删除我想再次重新启动的 HelloWorldLayer。

4

1 回答 1

0

您必须使用替换场景。使用 pushScene,应用程序最终会耗尽内存,因为之前的场景没有释放。

请务必创建一个新场景(如您的代码示例中所示),不要尝试使用已经运行的场景调用 replaceScene,否则会失败。

您还应该验证您的场景是否在 replaceScene 之后解除分配。在 dealloc 方法中设置断点。如果它不释放,这意味着场景正在泄漏,这可能导致各种奇怪的问题。

于 2013-02-08T12:22:05.860 回答