Cocos Creator 微信小游戏苹果手机锁屏卡死的坑

在制作小游戏项目时遇到了 苹果系列手机 只要游戏过程中进行锁屏后解锁时,整个手机或微信会卡个几秒甚至会黑屏!

所以就这个问题进行了各种 onshow/onhide 的操作试验。

第一种:在onshow中设置暂停游戏,在onhide中设置恢复游戏  

cc.director.pause() //暂停游戏

cc.Game.pause();   //彻底暂停游戏 包括音效音乐等

cc.director.resume(); //恢复游戏

cc.director.end();  //结束游戏

当然也可以将游戏扔到后台或锁屏时直接使用 end 将游戏结束掉。

此方法能缓解大部分问题,但是当游戏中油 socket等长连接请求时,引起socket掉线后重新连接并ID变化的问题。

 

第二种:直接修改引擎 (推荐方法)

这个是官方给出的方案,目前来说最实用的一种方,目前版本2.1版本稳定版。依然没有将解决方法加入到引擎中,所以我们需要手动去处理。

改动以下代码(共两处):(我的是MAC版本所以windows版本的小伙根据自己的路径寻找文件)

第一处:

修改以下代码 将这段代码直接屏蔽掉(注释),大概在此文件的720行左右的位置。

if(CC_WECHATGAME || CC_QQPLAY) {
       opts['preserveDrawingBuffer'] = true;
}

第二处:

修改以下代码 将这段代码直接屏蔽掉(注释),大概在此文件的9479行左右的位置。

if (opts.preserveDrawingBuffer === undefined) {
    opts.preserveDrawingBuffer = false;
}

好了修改完以上两处以后,bin.cache 下面的所有文件 将所有cocos creator 相关的应用程序关闭,重新打开使软件自动重新编译引擎,注意一定要重新编译引擎否则我们以上修改的配置都不会生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值