因为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.