Creator 2.2.1版本calculateDeltaTime死循环了

可以试试我的回复里的做法。

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方法就行了

请问我那样修改能解决问题么,我本地复现不了问题。

我这边暂时没遇到了,下周线上更新了再看看

嗯嗯嗯

请问现在情况怎样。。。


我是1.9.5版本开始更新的,相比上个版本报错次数少了很多,但还是有出现报错的情况,很奇怪

你好,我改了还是一样出现这个问题,很多玩家在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

上周更新了这个修改
目前为止没有观察到上报了。

修改有效。

1赞

好的,谢谢反馈,最好是更新到和我 PR 一样的代码,因为之前那样也还是可能出现异常。

更上线观察了一天,没发现类似报错。
pr修复有效

你好,为啥我还是有这个出错。。。好想哭
构建出来的cocos2d-js-min.js里是这样的:
calculateDeltaTime:function(t){t||(t=performance.now()),this._deltaTime=t>this._lastUpdate?(t-this._lastUpdate)/1e3:0,this._lastUpdate=t}
但是新版本今天还是报错了

有用到引擎插件么

是的!!!引擎插件,那里不是同步更新吗?

引擎插件不支持定制引擎,需要等新版本我们提交新的引擎插件到微信后台。

@2751054328 的去做,这样就不会动到引擎代码了,引擎插件可以继续用

1赞

此问题将在 2.2.2 修复

改prototyope就完事了:joy: