ホームページ >バックエンド開発 >Python チュートリアル >私の PyGame コードが何も描画しないのはなぜですか?
PyGame プロジェクトは、pygame.draw.rect() を使用して、下が灰色、上が黒の背景を作成することを目的としています。関数。この関数を使用してこれまでに成功した経験があるにもかかわらず、一貫性のない描画結果が発生しています。黒い画面が表示される場合もあれば、画面の一部に灰色の四角形が表示される場合もあります。
この混乱は、PyGame では描画だけでは目に見える出力が生成されないという事実から生じます。関連付けられたサーフェスを変更した後、それらの変更を表示するにはディスプレイを更新する必要があります。
描画は、PyGame ディスプレイに関連付けられた Surface オブジェクト上で行われます。ただし、これらの変更は自動的には表示に反映されません。それらを表示するには、pygame.display.update() または pygame.display.flip() を使用して表示を明示的に更新する必要があります。
pygame.display.flip() は全体を更新します。一方、pygame.display.update() は、画面の特定の領域に対してより選択的な更新を提供します。通常、ソフトウェア ディスプレイ向けに最適化されていますが、ハードウェア アクセラレーション ディスプレイではサポートされていません。
典型的な PyGame アプリケーション ループは、次のいくつかのステップで構成されます。
表示の更新を含む変更されたコードは次のとおりです:
import pygame from pygame.locals import * pygame.init() DISPLAY = pygame.display.set_mode((800,800)) pygame.display.set_caption("thing") clock = pygame.time.Clock() run = True while run: # handle events for event in pygame.event.get(): if event.type == QUIT: run = False # clear display DISPLAY.fill(0) # draw scene pygame.draw.rect(DISPLAY, (200,200,200), pygame.Rect(0,400,800,400)) # update display pygame.display.flip() # limit frames per second clock.tick(60) pygame.quit() exit()
必要な表示の更新を組み込むことによりそうすると、期待どおりの背景が灰色の底部と黒色の上部で表示されるはずです。
以上が私の PyGame コードが何も描画しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。