【问题标题】:How to restart game play ( layer ) in cocos2dcocos2d如何重启游戏(图层)
【发布时间】:2013-02-08 20:22:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios objective-c xcode cocos2d-iphone


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢史蒂芬。我将 pushScene 替换为 replaceScene 。替换场景后调用dealloc。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多