2013-01-19 44 views

回答

5

幀率下降。什麼都不會被取消。

在60 fps時,對於cocos2d和您的代碼來說,處理所有渲染幀所需的所有內容(包括所有OpenGL繪圖操作)的準確率只有1/60秒。這完全是0.016666666秒。

如果一個更新週期花費比這更長的時間,下一幀將在0.03333333秒後呈現,而如果多幀連續花費更長時間處理,則將幀速率降至30幀/秒。假設在這段時間內所有的事情都完成了,否則下一幀更新將被推遲到0.05秒甚至0.06666666秒。

您只能使用cocos2d獲得60,30,20或15 fps的幀速率,因爲它使用了CADisplayLink,它使刷新率與屏幕刷新率同步。 cocos2d中的幀速率計數器可能會顯示40 fps或其他值,因爲它在多個幀上平均。

+0

這是我讀過的關於Cocos2D幀率下降的最好解釋。很有幫助。 – Sylvan

+0

@ LearnCocos2D謝謝!但是,在一個更新週期中,我的預定函數和OpenGL繪圖操作的執行順序是什麼?如果調用用戶輸入相關函數(例如onTouchXXX委託方法),它們是否也在更新週期內在同一線程中運行,並且執行順序是什麼? –

相關問題