Creator中如何捕获游戏退出事件?

在绝大多数游戏中都会有如下应用场景,在用户退出之前,保存该用户的实时状态,关闭网络连接,注销资源等一系列操作。
我目前做的游戏中,也有类似的需求,我想实现的是如下效果:
在IOS上,用户点击“HOME” 键,退出游戏,不点击游戏中任何按钮,此时该如何捕获游戏进程的退出事件?做到上面一系列操作???

我大致搜了下,网上貌似有:cc.game.onStop
cc.game.onStop = function () {
cc.log(“stopApp”);
}

但是我测试了再,在网页测试中,和模拟器测试中,关闭网页和关闭模拟器,不会触发这个函数。没任何反应。

有没有哪位高手能指点下?谢谢!

试试 cc.game.on(cc.game.EVENT_HIDE, callback);

1赞

然而并不能

在浏览器中,游戏退出并不能监听到,是不是无法监听?还是说有什么其他的方法,望大神关注

帮顶啊,我也有这个需求啊.
ios需要监听home键需要给玩家断网…回来后根据监听的状态提示玩家重新登录…

我也是,需要退出时保存玩家数据

换方案吧,游戏内实时存本地,定时与服务器同步即可,最多损失间隔时间的数据。

退出的时候做这种存盘的工作 这本身就是一种很不稳定的思路,就算你能实现在某个平台上的功能 也不能保证其他平台系统没问题,所以这种设计思路就有很大问题

打算做个隐藏成就,游戏做个退出按钮,故意让它不好触及到,通常玩家都是按X关闭游戏,如果玩家费劲巴拉用这个按钮退了游戏,获得成就“守序善良之人”

感觉这个方案可行

问一下大佬,那什么样子的方案更合理


触发退出游戏,就跳转到一个“退出页面”,“退出页面”执行退出后的流程,例如关闭页面返回上一层。

1赞

问题是代码不知道什么时候被玩家退出了,有可能玩家强制关闭了

试下这2个
cc.game.on(cc.game.EVENT_HIDE, () => {
//游戏隐藏
});

cc.game.on(cc.game.EVENT_SHOW, () => {
//游戏显示
});

测试了 玩家直接杀掉游戏 不进入这个回调

如果是嵌入大厅或者其他app里,可以让安卓端在window下挂一个退出函数

玩家强制杀掉了??? 那你要随时去保存用户数据啊。没有别的办法了。