上面是微信后台的报错,报错次数挺高的,我自己遇到过两次,求引擎大佬重视一下
暂时没查到,出现概率不高
2.2.1测试版本 就已经线上概率出现 this._deltaTime < 0后 再次计算时间 但一直都是<0 死循环了
嗯,我看下。
请问问题解决了吗,我的游戏线上很多报这个递归的错
你试下这样改下:
if (this._deltaTime < 0) {
this._lastUpdate = now;
this.calculateDeltaTime();
return;
}
我本地没能复现问题,现在不太确定 now 这个参数的变化规律是什么,现在假定 now 在一次异常变小之后稳步增大,那么这样修改应该能够解决问题。
可以试试我的回复里的做法。
2.2.1 正式版本发的微信开发版,也遇到了这个问题:
Maximum call stack size exceeded;at requestAnimationFrame callback function
RangeError: Maximum call stack size exceeded
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126319)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
at 28.cc.Director.calculateDeltaTime (https://usr/game.js:3:126412)
手动改一下 cc.Director.prototype.calculateDeltaTime方法就行了
请问我那样修改能解决问题么,我本地复现不了问题。
我这边暂时没遇到了,下周线上更新了再看看
嗯嗯嗯
请问现在情况怎样。。。
你好,我改了还是一样出现这个问题,很多玩家在10+秒流失了。。。因为进不来游戏
我改了CocosCreator_2.2.1\resources\engine\cocos2d\core\CCDirector.js里的
编译以后的cocos2d-js-min.js里面是这样的:就是我改成功了吧?
calculateDeltaTime:function(t){if(t||(t=performance.now()),this._deltaTime=(t-this._lastUpdate)/1e3,this._deltaTime<0)return this._lastUpdate=t,void this.calculateDeltaTime();this._lastUpdate=t}
会不会是微信新的引擎插件搞的?我改了这里,但是微信那的引擎里还是老的?
很抱歉,这个代码是由于之前要修复这个问题:
而添加的,试试参考这个 PR 相同的方案修改一下引擎代码:
https://github.com/cocos-creator/engine/pull/5952
上周更新了这个修改
目前为止没有观察到上报了。
修改有效。
好的,谢谢反馈,最好是更新到和我 PR 一样的代码,因为之前那样也还是可能出现异常。