PyGame으로 다양한 도형 그리기
Pygame은 파이썬으로 게임과 멀티미디어 애플리케이션을 개발할 때 널리 사용되는 대표적인 멀티미디어 라이브러리입니다. 이 글에서는 pygame 모듈을 활용해 화면에 여러 가지 도형을 그리는 방법을 살펴봅니다. 각 도형의 높이, 너비, 좌표 위치를 고려하여 pygame 창 안에서 서로 겹치지 않도록 배치하는 것이 핵심입니다.
프로그램의 동작 원리
아래 예제 프로그램은 다음과 같은 순서로 동작합니다.
- pygame 모듈을 초기화하고, 도형에 사용할 RGB 색상 값과 창의 크기(X, Y)를 정의합니다.
set_mode()로 디스플레이 표면(display surface)을 생성하고,set_caption()으로 창 제목을 지정합니다.draw모듈의circle(),ellipse(),rect()함수를 호출해 원, 타원, 사각형을 그립니다. 각 함수의 인자(색상, 좌표, 크기)를 신중하게 지정해야 도형들이 서로 겹치지 않습니다.- 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 크기 창이 열리고, 그 위에 빨간색 타원, 파란색 사각형, 검은색 원이 각각 지정된 위치에 그려진 것을 확인할 수 있습니다.
