await命令は使わずに、プログラムの中の一部の描画処理で
フレームレートを制限したいと考えています。
30FPS以上で動作していた場合は描画のみ30FPS(33msに一度)で行われるようにする予定です。
音楽ゲームを作っているので、プログラム全体のフレームレートを下げると
キー入力の時刻取得の精度が低くなってしまいます。
プログラム本体のフレームレートを下げずに、画面の描画のフレームレートだけを
制限する方法をご存知の方いましたら教えていただきたいです。
よろしくお願いします。
---これまでの経緯(飛ばしてもらっても構いません)
30FPSに制限するために、
前回の描画処理を行った時刻から33ms以上経っていれば
次の描画処理を行う、という形をとっていたのですが
実際にプログラムを動かしていたところ、40FPS程度で動作していたので
一度描画された次のループでは約25ms経過しているということになります。
これでは次のループで描画処理はスキップされて約50ms経過した2ループ目で
描画処理が行われてしまうことになり、結果的に20FPSで動作している時と
変わらない描画速度でカクカクになってしまいました。