iOS设备中垂直同步开启后的帧率计数

因为iOS设备的垂直同步总是开启的所以显得帧计数意义没啥意义.

帧计数给你一个多个帧中的平均数,现实中,你帧速率只能是60,30,20,15,12以及6fps等各个常数中的一个.所有这些值都是60的因子.

由于垂直同步被开启,如果一个帧未能在0.0166秒中在它的更新和渲染循环(update-and-render cycle)中完成,则该帧将显示在最近的另一个0.0166秒中,而不是一直渲染.

所以一旦游戏开始耗费超过0.0166秒去完成每一个帧,帧速率将降至30fps.

对于一些游戏帧速率剧烈在30至60fps之间波动,如果将其锁定在30fps就会很有意义.这会感觉到比帧率不断起伏而跳过成堆的帧(因此降至30fps然后在60fps渲染少量更多的帧)更加平滑,

为了改变最大帧速率,你可以在AppDelegate.m的startScene方法添加如下代码:

CGFloat framesPerSecond = 30;
[CCDirector sharedDirector].animationInterval = 1.0/framesPerSecond;

除以framesPerSecond是有必要的,因为animationInterval值被表示为seconds per frame.

上一篇:李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入


下一篇:对IOS设备中UDID的一些思考