Pygame ゲームでできるだけ一定のフレーム レートを実現したいと考えています。
この回答 ( Setting a fixed FPS in Pygame, Python 3 ) は、滑らかでフレームレートに依存しない結果を得る方法を説明していますが、これは一定のフレームレートと同じではありません。
私が期待しているのは(30 FPSの目標の場合):
- 処理時間が 1/30 秒未満の場合は、残りの時間だけスリープして、すべての CPU リソースを使用しないようにします。
- それ以上の場合は、眠らないでください。
1つの解決策(ただし、最適ではないようです。理由はわかりません):
... setup pygame...
clock = pygame.time.Clock()
# Main loop
while True:
...do some processing...
...possibly not same computation time every frame...
dt = clock.tick(0)
if dt < 1/FPS:
clock.tick(1/ (1/FPS - dt))
clock.tick
@ Rabbid76の回答後に編集。