如果scheduleUpdate调度的更新方法在cocos2d-iphone中运行时间太长怎么办?

时间:2013-01-19 13:32:40

标签: cocos2d-iphone game-engine

在scheduleUpdate之后,更新:(ccTime)dt将被调用每秒60次,如果一次更新方法的运行时间超过1/60秒怎么办?下一个电话会被取消吗?

1 个答案:

答案 0 :(得分:5)

帧速率下降。什么都不会被取消。

在60 fps时,cocos2d恰好有1/60秒,您的代码可以处理渲染帧所需的所有内容,包括所有OpenGL绘图操作。这一切都是0.016666666秒。

如果一个更新周期花费的时间长于此值,则下一帧将在0.03333333秒之后呈现,如果多个帧连续花费更长时间处理,则将帧速率降低到30 fps。假设一切都在该时间内完成,否则下一帧更新将推迟到0.05秒甚至0.06666666秒。

使用cocos2d只能获得60,30,20或15 fps的帧速率,因为它使用CADisplayLink将更新与屏幕刷新率同步。 cocos2d中的帧率计数器可能会显示40 fps或其他因为它平均超过多个帧。