>백엔드 개발 >파이썬 튜토리얼 >왜 내 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은 이를 위해 두 가지 기본 메서드를 제공합니다:

  • pygame.display.update(): 화면의 일부만 업데이트합니다.
  • pygame. display.flip(): 전체를 업데이트합니다. 디스플레이.

특정한 경우 표면에 직사각형을 그렸지만 디스플레이를 업데이트하지 않았습니다. 결과적으로 변경 사항은 보이지 않는 상태로 유지됩니다.

일반적인 PyGame 애플리케이션 루프

일반적인 PyGame 애플리케이션은 다음을 포함하는 루프를 따릅니다.

  • 이벤트 처리
  • 게임 상태 업데이트
  • Surface 지우기
  • 장면 그리기
  • 디스플레이 업데이트
  • 프레임 속도 제한

다음은 필요한 디스플레이 업데이트를 포함하는 업데이트된 코드의 예입니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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