2013-02-08 108 views
0

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

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

但是我写了一遍又一遍的调用pushScene。它会影响我的游戏吗?因为直到现在我正在移除那个我想再次重启的HelloWorldLayer。

回答

0

您必须使用replaceScene。随着pushScene的应用程序将最终耗尽内存,因为以前的场景不会释放。

一定要创建一个新的场景(就像在你的代码示例中一样),不要试图用已经运行的场景调用replaceScene,否则会失败。

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

+0

谢谢Steffen。我将pushScene替换为replaceScene。而dealloc是在更换场景后调用的。 – Zohaib 2013-02-08 12:58:45