目に見える実行中のタイマーを備えたゲームを持っていますが、10 進数を超えて 2 桁の精度 (#.##) しか達成できません。これはフレームワークの制限ですか、それとも回避策はありますか? このタイマーで 4 ~ 6 桁の精度 (#.######) を達成しようとしています。
2 に答える
2
iOSのタイマーは最大周波数60Hzで動作するため、2桁の精度しか得られません。
時間とイベントの開始を取得し、イベントの終了時に時間を取得して差を計算することで、回避策を講じることができます。今回は、フレームレートの低下、一時停止、バックグラウンドへの移動などは考慮されません。
于 2013-01-24T22:04:07.210 に答える
1
これは、基盤となるシステムの制限です。iOSはリアルタイムシステムではなく、タイマーはいわゆる実行ループでスケジュールされます。実行ループは、期限が来るとタイマーをディスパッチします。ただし、タイマーを正確にディスパッチするには、実行ループを十分な頻度で実行し、反復ごとにタイマーをチェックする必要があります。ただし、実行ループは他のものも実行します。たとえば、イベントメカニズム全体、メッセージ、ネットワークは実行ループで実行されるため、タイマーは数ナノ秒ごとにチェックされません(また、実行ループは一貫して実行されませんが、システムに戻る時間も)
于 2013-01-24T22:05:14.433 に答える