/ / Cocos2d環境内でのタイマー精度の実行-iOS、cocos2d-iphone、タイミング

Cocos2d環境でのタイマー精度の実行 - ios、cocos2d-iphone、timing

目に見えるランニングタイマーがあるゲームがありますが、小数点以下2桁の精度(#。##)しか達成できません。これはフレームワークの制限ですか、それとも回避策がありますか?このタイマーで4〜6桁の精度(#。######)を達成しようとしています。

回答:

回答№1は2

iOSのタイマーは60Hzの最大周波数で実行されるため、2桁の精度しか得られません。

時間をかけて回避策を講じることができますそして、あなたのイベントの開始し、次にイベントの終了時に時間を取り、差を計算します。今回は、フレームレートの低下、一時停止、バックグラウンドへの移動などは考慮されません。


回答№2の場合は1

これは、基礎となるシステムの制限です。 iOSはリアルタイムシステムではなく、タイマーはいわゆる実行ループでスケジュールされます。これは、タイマーが期限になるとタイマーをディスパッチします。ただし、タイマーが正確にディスパッチされるようにするには、実行ループを十分に頻繁に実行し、反復ごとにタイマーをチェックする必要があります。ただし、実行ループは他の機能も実行します。たとえば、イベントメカニズム全体、メッセージ、ネットワークが実行ループで実行されるため、タイマーは数ナノ秒ごとにチェックされません(また、実行ループは一貫して実行されませんが、システムに戻る時間)