web-dev-qa-db-ja.com

pygame.display.updateとpygame.display.flipの違い

タイトルが示すように、違いはありますか?私はpygame.display.flipを使用していましたが、インターネットではフリップを使用する代わりにpygame.display.updateを使用していることがわかりました。どちらが速いですか?

23
Yubin Lee

pygame.display.flippygame.display.update の主な違いは、

  • display.flip()はディスプレイ全体の内容を更新します
  • display.update()は、画面の領域全体ではなく、画面の一部を更新できます。引数を渡さずに、ディスプレイ全体を更新します

PyGameに画面のどの部分を更新する(つまり、モニターに描画する)かを伝えるには、単一のpygame.Rect object、またはdisplay.update()関数へのそれらのシーケンス。 PyGameのRectは、widthheightのほか、位置のx-とy-の座標を保存します。

PyGameの 組み込みの夜明け関数 および .blit() メソッドは、たとえばRectを返すので、単にdisplay.update()関数に渡すことができます「新しい」描画領域のみを更新するため。

display.update()display.flip()と比較して、画面全体の特定の部分のみを更新するため、display.update()はほとんどの場合高速です

36
elegent

フリップは常に画面全体を更新します。引数を指定しない場合、更新は画面全体も更新します。ただし、引数としてサーフェスを指定すると、これらのサーフェスのみが更新されます。したがって、与えるサーフェスの数と幅と高さに応じて、より高速になります。

7
lain