Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python – PyGame 창에 다양한 도형 그리는 방법


PyGame으로 다양한 도형 그리기

Pygame은 파이썬으로 게임과 멀티미디어 애플리케이션을 개발할 때 널리 사용되는 대표적인 멀티미디어 라이브러리입니다. 이 글에서는 pygame 모듈을 활용해 화면에 여러 가지 도형을 그리는 방법을 살펴봅니다. 각 도형의 높이, 너비, 좌표 위치를 고려하여 pygame 창 안에서 서로 겹치지 않도록 배치하는 것이 핵심입니다.

프로그램의 동작 원리

아래 예제 프로그램은 다음과 같은 순서로 동작합니다.

  1. pygame 모듈을 초기화하고, 도형에 사용할 RGB 색상 값과 창의 크기(X, Y)를 정의합니다.
  2. set_mode()로 디스플레이 표면(display surface)을 생성하고, set_caption()으로 창 제목을 지정합니다.
  3. draw 모듈의 circle(), ellipse(), rect() 함수를 호출해 원, 타원, 사각형을 그립니다. 각 함수의 인자(색상, 좌표, 크기)를 신중하게 지정해야 도형들이 서로 겹치지 않습니다.
  4. while 무한 루프 안에서 pygame.event.get()으로 이벤트를 계속 감시하며, 사용자가 창을 닫으면 pygame.quit()quit()을 호출해 프로그램을 종료합니다. pygame.display.update()가 매번 화면을 갱신해 줍니다.

주요 draw 함수 정리

  • pygame.draw.circle() : 지정한 중심 좌표와 반지름으로 원을 그립니다.
  • pygame.draw.ellipse() : 주어진 사각형 영역에 내접하는 타원을 그립니다.
  • pygame.draw.rect() : 위치와 크기(너비, 높이)를 지정해 사각형을 그립니다.

예제 코드

import pygame
pygame.init()

# RGB 색상 값 정의
white = (255, 255, 255)
green = (0, 255, 0)
blue = (0, 0, 150)
black = (0, 0, 0)
red = (255, 0, 0)

# X, Y 변수에 창 크기 할당
X = 400
Y = 400

# 디스플레이 표면 생성
display_surface = pygame.display.set_mode((X, Y))

# pygame 창 이름 설정
pygame.display.set_caption('Drawing')

# 표면 객체를 흰색으로 채우기
display_surface.fill(white)

# draw.circle()로 원 그리기
pygame.draw.circle(display_surface,
                   black, (300, 250), 80, 0)

# draw.ellipse()로 타원 그리기
pygame.draw.ellipse(display_surface, red,
                    (50, 200, 100, 150), 4)

# draw.rect()로 사각형 그리기
pygame.draw.rect(display_surface, blue,
                 (50, 50, 150, 100))

# 무한 루프
while True:
    # 이벤트 목록 순회
    for event in pygame.event.get():
        # 이벤트 객체의 타입이 QUIT인 경우
        if event.type == pygame.QUIT:
            # pygame 라이브러리 비활성화
            pygame.quit()
            # 프로그램 종료
            quit()
        pygame.display.update()

실행 결과

위 코드를 실행하면 흰색 배경의 400×400 크기 창이 열리고, 그 위에 빨간색 타원, 파란색 사각형, 검은색 원이 각각 지정된 위치에 그려진 것을 확인할 수 있습니다.

Python – PyGame 창에 다양한 도형 그리는 방법