ホームページ >バックエンド開発 >Python チュートリアル >私の PyGame 描画が表示されないのはなぜですか?

私の PyGame 描画が表示されないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-15 15:48:15520ブラウズ

Why Aren't My PyGame Drawings Appearing?

PyGame で何も描画されない理由

PyGame アプリケーションでオブジェクトをレンダリングしようとしているにもかかわらず、結果が表示される場合があります一貫性がない、または存在しない。これが発生する理由を理解するには、サーフェス上での描画と表示の更新の違いを認識する必要があります。

サーフェス上での描画

PyGame では、通常、描画します。グラフィックスをサーフェスオブジェクトに貼り付けます。アプリケーションで表示される画面は、実際にはディスプレイに関連付けられたサーフェスです。ただし、このサーフェスに描画するだけでは、実際のディスプレイに表示されるわけではありません。

ディスプレイの更新

サーフェス上で行った変更を表示するには、以下が必要です。表示を更新します。 PyGame は、このために 2 つの主なメソッドを提供します。

  • pygame.display.update(): 画面の一部のみを更新します。
  • pygame。 display.flip(): 全体を更新しますdisplay.

あなたの特定のケースでは、サーフェス上に長方形を描画しましたが、表示は更新されていません。その結果、変更は目に見えないままになります。

典型的な PyGame アプリケーション ループ

典型的な 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。