高刷新率,update函数如何锁定60帧

update函数一般来说每秒执行60次(取决于浏览器和屏幕刷新率),当update 每秒执行不了60次就会掉帧卡顿,如果高于60帧,应该如何让它锁定在60帧呢?并且和60帧表现一致呢?求大佬解惑

update函数一般来说每秒执行60次(取决于浏览器和屏幕刷新率),当update 每秒执行不了60次就会掉帧卡顿,如果高于60帧,应该如何让它锁定在60帧呢?并且和60帧表现一致呢?求大佬解惑

cc.game.setFrameRate(59)

什么原理啊?

这似乎只是h5的方案,原生平台有同样的问题。

你自己游戏保持一个总的update函数,暂且命名为mainLoop,此函数内部进行dt累加,如果累加的时间小于0.016,则return,超过则执行后续逻辑并重新计时,就能控制你游戏的update数量了

注意,向下传递的dt为你累加的dt,并不是此次循环的dt。

学到了。。。。

今天上午尝试过在android上设置59帧,确实可以锁帧,具体原因不知道!
然后你说的这个方法,我认为是有一些问题的 首先自己的主循环做了一些操作,如果这些操作需要更改ui,你的ui更改会在cocos主循环的下一次才会刷新,这样时间更加不可控,当然如果你刷新新率达到极致,这个方案是没有问题的,我感觉你90帧的刷新率 会变成45 因为有一半被return掉了!
这些只是个人看法

不知道这里为什么会达成浏览器的效果,希望大佬解释下

可以通过累加时间不归0避免,而是变为 累加时间(包含当前帧时间) - (未执行帧(包含当前帧)数量 * 0.016)