非常に正確なタイミングでゲームループを実行する必要があります。私はこれを行うためにNSTimerを使用しようとしていますが、私はOKの結果を得ていますが、少しのドリフトがあります。 NSTimerが起動すると、次回イベントがハンドラの終了時にカウントを開始するか、すぐにカウントが開始されます。 前者がsetFireDateを使って次のタイマーの発火を相殺しようとするのが妥当なのであれば - これを試してみると悪いようです。NSTimerを使用して正確なタイミングを得る
私のタイマーは44msごとに発火するように設定されています。私は20ms以上ドリフトを止めたいと思います。それが漂うなら、私は次の火のためにそれを修正したいと思います。 これはNSTimerで試してみると妥当なことですか?
44msで20msがドリフトしていない、それは不正確です。 NSTImerはそれよりはるかに信頼性が高くなければなりません。 –
私は、私のループがドリフトしないようにする時間が欲しいということでした。私は、タイマーが実際にタイマー値+ゲームアップタイムと思われるので、ハンドラーが終了する時点でタイマーが次のタイミングを開始することが分かります。 – Ian1971
ドキュメントによれば、そのように漂ってはならないことは確かではありません(そしてこれまで私が単純なマウストラッカーを書いた時にこれが真実であることがわかった)。漂流している場合は、Appleにバグレポートを提出する必要があります。 –