0

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の回答後に編集。

4

1 に答える 1