怎么通过代码获取游戏实时帧率,就是那个fps

**1.**我查阅的api文档,只发现了

cc.director.getSecondsPerFrame();

可是这个好像并不是游戏帧率

cc.director.getAnimationInterval();

这个获取的是设置的帧率值,固定值,不是游戏实时运行的值

**2.**我去qq群里面问,结果被鄙视了一圈,说这种简单的问题还问,烦不烦啊! 有个好友群友给了我一个api

cc.profiler.getFrameRate();

好吧,这个就是我想要的,然后兴高采烈的赶紧写上,web上没问题,可是android就崩了

build\jsb-default\src\project.js line:10 msg:TypeError: cc.profiler is undefined

**3.**现在我还要再次舔着脸问引擎组,有这个api没有,被众人唾骂之后,感觉自己水的不行啊,我开始怀疑我查阅api的能力

你查api能力没问题,但是理解fps是什么意思吗?他的意思是一秒钟能跑多少帧。你上面提到的第一个api是一帧跑多少秒。这就是倒过来的关系。

我有一个大胆的想法——组件的update方法会接收一个dt,代表上一帧到这一帧的毫秒数,用1000/dt是不是就是当前fps?

理论上可以这么做,但是我不想这么做

得到的结果好像不是很准确

抱歉,CCProfiler 是纯 Web 实现,所以的确无法在 native 中使用,计算帧率,建议注册一个主循环回调,比如 cc.Director.EVENT_AFTER_DRAW,在回调中计数,开始计算的时候,记录当前时间(JS 的 Date Time 接口),当时间达到 1 s 的时候,统计回调次数,就可以得出前一秒的帧率了。

4赞

不是1/dt?

六年后的回复?