Pygame(파이게임)은 파이썬으로 게임과 멀티미디어 애플리케이션을 개발할 때 가장 널리 사용되는 멀티미디어 라이브러리입니다. 이 글에서는 pygame 모듈을 활용해 화면에 원하는 폰트와 텍스트를 출력하는 방법을 알아보겠습니다. 단순히 텍스트를 띄우는 것뿐만 아니라, 텍스트의 크기(높이와 너비)와 pygame 윈도우 내 위치를 지정하는 방법까지 함께 살펴봅니다.
Pygame에서 텍스트 표시하는 기본 흐름
아래 예제 프로그램은 다음과 같은 순서로 동작합니다.
먼저 pygame 모듈을 초기화하고, 화면 모드(set_mode)와 창 제목(caption)을 정의합니다. 다음으로 폰트 객체를 생성해 텍스트를 렌더링한 뒤, 텍스트가 표시될 좌표를 지정합니다. sur_obj.blit() 함수가 준비된 텍스트를 화면에 그려주며, 마지막의 while 루프는 사용자가 창 종료 버튼을 클릭할 때까지 이벤트를 계속 감시하는 역할을 합니다.
예제 코드
import pygame
import sys
# pygame 초기화
pygame.init()
# 화면(윈도우) 크기 설정
sur_obj = pygame.display.set_mode((300, 200))
# 창 제목 설정
pygame.display.set_caption("Text in Pygame")
# 폰트 색상 및 폰트 객체 생성
font_color = (0, 150, 250)
font_obj = pygame.font.Font(r"C:\Windows\Fonts\segoeprb.ttf", 25)
# 텍스트 객체 렌더링
text_obj = font_obj.render("Welcome to Pygame", True, font_color)
while True:
sur_obj.fill((255, 255, 255))
sur_obj.blit(text_obj, (22, 0))
for eve in pygame.event.get():
if eve.type == pygame.QUIT:
pygame.quit()
sys.exit()
pygame.display.update()주요 코드 설명
pygame.font.Font() – 사용할 폰트 파일의 경로와 글자 크기를 지정하여 폰트 객체를 생성합니다. 위 예제에서는 Windows 시스템 폰트인 segoeprb.ttf를 25pt 크기로 사용했습니다. 경로 앞에 r을 붙여 raw string으로 처리하면 역슬래시(\) 관련 오류를 예방할 수 있습니다.
render() – 지정한 문자열을 화면에 그릴 수 있는 Surface(텍스트 객체)로 변환합니다. 두 번째 인수인 True는 안티앨리어싱(부드러운 가장자리 처리)을 적용한다는 의미이며, 세 번째 인수는 텍스트 색상입니다.
blit() – 렌더링된 텍스트 객체를 화면의 지정한 좌표(x=22, y=0)에 그립니다. 이 좌표 값을 조절하면 텍스트의 위치를 자유롭게 변경할 수 있습니다.
실행 결과
위 코드를 실행하면 흰색 배경의 300×200 크기 윈도우가 열리고, 왼쪽 상단에 파란색 계열의 "Welcome to Pygame" 텍스트가 표시됩니다.

폰트 파일 경로나 크기, 색상 값(RGB), blit 좌표를 변경하면서 실행해 보면 pygame의 텍스트 출력 방식을 더욱 쉽게 익힐 수 있습니다.