>백엔드 개발 >파이썬 튜토리얼 >내 PyGame 디스플레이가 비어 있는 이유는 무엇입니까?

내 PyGame 디스플레이가 비어 있는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-21 01:05:13277검색

Why Is My PyGame Display Blank?

PyGame - 무효 표시 미스터리

PyGame을 사용하여 시각적 응용 프로그램을 만들 때 그리기 명령에도 불구하고 화면에 아무것도 렌더링되지 않는 경우가 발생할 수 있습니다. 이 문제를 해결하려면 디스플레이 업데이트의 개념을 이해하는 것이 중요합니다.

PyGame에서는 디스플레이와 관련된 Surface 개체에 그림을 그립니다. 그러나 이러한 변경 사항은 pygame.display.update() 또는 pygame.display.flip()과 같은 함수를 사용하여 디스플레이를 업데이트한 후에만 표시됩니다.

pygame.display.flip()이 전체 디스플레이를 업데이트하는 동안 pygame .display.update()는 특정 영역을 대상으로 할 수 있습니다.

PyGame 애플리케이션의 원활한 작동을 보장하기 위해 일반적인 루프는 관련 사항:

  1. 이벤트 처리: pygame.event.get() 또는 pygame.event.pump()를 사용하여 사용자 입력을 얻습니다.
  2. 게임 상태 및 개체 업데이트: 게임 상태 및 개체 조정 입력과 시간에 따른 객체 위치.
  3. 표시 지우기: 이전 프레임의 내용을 다음을 사용하여 지웁니다. DISPLAY.fill(0).
  4. 장면 렌더링: 필요한 모든 개체를 캔버스에 그립니다.
  5. 디스플레이 업데이트: pygame.display.update() 또는 pygame.display를 사용하여 보이는 디스플레이를 업데이트합니다. Flip().
  6. 프레임 속도 제어: 과도한 CPU 사용량을 피하기 위해 초당 프레임을 제한합니다. pygame.time.Clock().

수정된 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에서 적절한 렌더링이 보장됩니다.

위 내용은 내 PyGame 디스플레이가 비어 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.