0

关于 cocos2d-x 的游戏。当我按下home键退出游戏时。下一次,我怎么才能让游戏必须重新开始,但没有跟上最后一个退出场景

4

1 回答 1

0

理想情况下,applicationWillEnterForeground您应该简单地用它的新实例替换场景以重新开始,例如,如果您正在运行的场景类被调用GameLevelScene,您应该简单地告诉CCDirector用它的类中的新实例替换正在运行的场景。例如:

CCDirector::sharedDirector()->replaceScene(GameLevelScene::create());

但是,当我在做类似的事情来暂停我的游戏从后台恢复时,我注意到它并没有很好地工作(它应该有,也许这是 cocos2d-x 的一些问题)。因此,作为一种变通方法,我在开始时创建了一个延迟时间为零的序列,然后调用了我的游戏的暂停函数。我猜游戏从后台恢复后需要花一个时间来处理这个问题。对您来说,如果上述方法不起作用,请尝试以下操作:

someNode->runAction(
    CCSequence::create(CCDelayTime::create(0.0f),
        CCCallFuncO::create(CCDirector::sharedDirector(),
                            callfuncO_selector(CCDirector::replaceScene),
                            GameLevelScene::create()),
        NULL));

someNode可以是游戏中任何存在于游戏中的节点,它尚未被破坏;它必须是一个活着的对象。您可以拥有一个在游戏期间始终处于活动状态的游戏管理器节点。游戏管理器节点可以负责此类游戏管理问题。

于 2013-03-04T03:19:38.620 回答