【问题标题】:cocos2d-x pause game on background with pause screencocos2d-x 用暂停屏幕在背景上暂停游戏
【发布时间】:2014-07-27 16:41:31
【问题描述】:

我想弄清楚如何在后台实现暂停屏幕。在我的游戏场景中,我有一个名为 pauseGame 的方法。我进行了设置,以便用户可以在播放时单击暂停按钮,然后出现菜单询问他们是否要恢复或转到主菜单。现在,当手机进入后台时,我还想在我的游戏场景中调用相同的函数,以便它显示该菜单,以便当用户返回应用程序时,他们将能够恢复而不是自动启动。我已经用谷歌搜索了几个小时并尝试了一些东西,但我唯一能想到的就是从应用程序委托中调用 director 的 pause() 方法。这是发生了什么,但我需要调用我的游戏场景的 pauseGame 方法。是否有我可以在游戏场景中收听的事件,或者有没有办法从 appdelegate 调用我的暂停。我似乎找不到这个问题的答案。

【问题讨论】:

    标签: cocos2d-x


    【解决方案1】:

    App Delegate 有这个函数,void AppDelegate::applicationDidEnterBackground(),每次应用进入后台时都会调用它。

    你可以通过这个访问当前场景,

    • Director::getInstance()->getRunningScene();cocos2d-x 3.0
    • CCDirector::sharedInstance()->getRunningScene(); cocos2d-x 2.x //语法不太清楚,请查收

    正确类型转换并导入相应的头文件后,您可以从这里调用所需的函数。

    另外, AppDelegate 还有 void AppDelegate::applicationWillEnterForeground(),每次应用进入前台时都会调用它。

    【讨论】:

    • void AppDelegate::applicationWillEnterForeground() 在应用程序实际暂停之前被调用,但场景堆栈上的任何更改都将在下一次“更新”中“提交”,而在 void AppDelegate::applicationWillEnterForeground 之前未调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    相关资源
    最近更新 更多