1

scheduleUpdateの後、update:(ccTime)dtは1秒間に60回呼び出されます。一度に、更新メソッドの実行時間が1/60秒を超えるとどうなりますか?次の通話はキャンセルされますか?

4

1 に答える 1

5

フレームレートが低下します。キャンセルされることはありません。

60 fpsでは、cocos2dとコードがすべてのOpenGL描画操作を含め、フレームのレンダリングに必要なすべてを処理するのにちょうど1/60秒かかります。それはすべてを行うために0.016666666秒です。

1つの更新サイクルにそれより長い時間がかかる場合、代わりに次のフレームが0.03333333秒後にレンダリングされ、複数のフレームの処理に継続的に時間がかかる場合は、フレームレートが30fpsに低下します。すべてがその時間内に行われる場合、それ以外の場合、次のフレーム更新は0.05秒または0.06666666秒に延期されます。

cocos2dは更新を画面のリフレッシュレートと同期するCADisplayLinkを使用しているため、60、30、20、または15fpsのフレームレートしか取得できません。cocos2dのフレームレートカウンターは、複数のフレームで平均化されるため、40fps程度を示す場合があります。

于 2013-01-19T14:28:24.450 に答える