详解cocos2d帧率FPS

阅读: 评论:0

详解cocos2d帧率FPS

详解cocos2d帧率FPS

详解cocos2d帧率FPS

最近在使用coco2d-js写一个游戏的时候,需要将帧率实时显示出来,
于是搜索了一下,获得FPS有下面几个方法:

AnimationInterval()
SecondsPerFrame()

但是,这两个方法都有点问题

getAnimationInterval()只会返回你设定好的FPS帧率,即project.json里的frameRate值,不会随着实际帧率而变化

getSecondsPerFrame()方法返回的是每帧的秒数,按说其倒数就是实际的帧率,然而其根据cocos的算法,往往很小,用1除以这个数值会经常出现大数值的越界.

然后我就想到,在cocos2d的调试模式下,有三行数值,其中就有FPS:

然后我去找这个帧率是怎么计算的,在CCDirector.js中,有个变量
_frameRate,这个数值保留一位小数就是这个Label的值,源码如下:

this._frameRate = this._frames / this._accumDt;
this._FPSLabel.string = this._Fixed(1);

也就是说在我们的js中直接获得

var fps = cc.director._frameRate

获得这个数值就可以把帧率的显示变好看一点了,然后我想把默认的这三行隐藏,于是写了这一行:

 cc.director.setDisplayStats(false)

但是这样,cc.director._frameRate的值就一直是0了,那是因为
DisplayStats是false后cocos就不会实时计算FPS了,所以不能设为false,而是只让三个label不显示就行了,于是,在CCDirector.js的 _showState()函数 中,将这三行注释掉:

 this._FPSLabel.visit();this._SPFLabel.visit();this._drawsLabel.visit();

结果就可以把fps显示到任何地方,这是js的写法,我想C++应该是差不多的

本文发布于:2024-01-28 15:06:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064255798274.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:详解   cocos2d   FPS   帧率
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23