
Pygame 프로그램 개발 시작 단계에서 함수를 기반으로 프로그램의 구조를 구성하면 다음과 같다.
- pygame 패키지를 import 한다.
- pygame.init 함수로 pygame 모듈을 초기화 한다.
- pygame.display.set_mode 함수로 게임 화면의 크기를 설정한다.
- 무한 반복문 내에서 pygame.event.get 함수로 발생한 이벤트 정보를 가져온다.
- 발생한 이벤트의 속성 "type"의 값이 종료를 의미하면, 무한 반복문을 벗어나도록 한다.
- pygame.quit 함수로 pygame 모듈 초기화를 해제한다.
본 글에서 사용하거나 참고하는 기능에 대한 정의는 다음과 같다.
pygame.init() -> (numpass, numfail)
pygame.display.set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0) -> Surface
pygame.event.get(eventtype=None) -> Eventlist
pygame.quit() -> None
예제 코드 1
위에서 설명한 내용을 코드로 구현한 예는 아래 <코드 1>과 같다.
<코드 1>
# python 3.9.6
# pygame 2.0.1
import pygame
def main():
pygame.init()
screen = pygame.display.set_mode((640, 480))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT\
or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
running = False
break
if not running:
continue # == break
pygame.quit()
if __name__ == '__main__':
main()

게임 화면 말고는 표시되는 것이 없지만 키보드의 "ESC" 키 또는 화면 오른쪽 상단의 화면 닫기 아이콘을 클릭하면 게임은 정상적으로 종료된다.
pygame.init
pygame.init 함수는 pygame 모듈을 초기화하기 위해 사용한다.
pygame.init() -> (numpass, numfail)
pygame.display.set_mode
pygame.display.set_mode 함수는 화면 크기 등 게임 화면의 특성을 설정하기 위해 사용한다.
pygame.display.set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0) -> Surface
size 파라미터
size 파라미터로 게임 화면의 크기를 픽셀 단위, 튜플로 설정한다 : (width, height)
size 파라미터의 값이 (0, 0)이면, 사용하는 모니터의 해상도로 화면 크기가 설정된다.
본 사항은 pygame 2.0.1 기준으로 한다.
set_mode 함수가 반환하는 Surface 객체에 대하여 get_size 메서드를 사용해 그 크기를 확인할 수 있다.
screen = pygame.display.set_mode()
print(screen.get_size())

flags 파라미터
flags 파라미터로 설정 가능한 값은 다음과 같고 비트 연산도 가능하다. 일부의 값은 pygame 2.0.0 이상에서만 유용하다.
- pygame.FULLSCREEN
- pygame.DOUBLEBUF
- pygame.HWSURFACE
- pygame.OPENGL
- pygame.RESIZABLE
- pygame.NOFRAME
- pygame.SCALED
- pygame.SHOWN
- pygame.HIDDEN
display 파라미터
display 파라미터로 게임 화면이 표시되는 모니터를 설정할 수 있다. display 파라미터 값은 0부터 시작한다.
pygame.display.set_icon , pygame.display.set_caption
pygame.display.set_icon 함수로 게임 화면의 아이콘을(왼쪽 상단), pygame.display.set_caption 함수로 게임 화면의 타이틀을 설정할 수 있다.
<코드 2>
# python 3.9.6
# pygame 2.0.1
import pygame
def main():
pygame.init()
pygame.display.set_icon(pygame.image.load('emo_im_cool.png'))
pygame.display.set_caption('My Pygame')
screen = pygame.display.set_mode((640, 480))
running = True
while running:
for event in pygame.event.get():
# print(type(event))
if event.type == pygame.QUIT\
or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
running = False
break
if not running:
continue # break
pygame.quit()
if __name__ == '__main__':
main()

이미지 파일 "emo_im_cool.png" 외 화면 아이콘으로 사용 가능한 이미지를 하나 선택한 후 <코드 2>를 실행하면 아래와 같이 그 결과를 확인할 수 있다. 아이콘 관련해선 C:\Program Files 폴더에서 아이콘으로 사용할 만한 이미지를 찾아 볼 수 있다.

Pygame Documentation

'코딩 > 파이썬 pygame' 카테고리의 다른 글
| 파이썬 게임 006. pygame.time.Clock 클래스를 이용해 게임 화면이 바뀌는 시간 제어 (1) | 2021.09.23 |
|---|---|
| 파이썬 게임 005. pygame.Surface.fill 함수로 게임 배경색 변경 (0) | 2021.09.21 |
| 파이썬 게임 004. 클래스 기반 pygame 프로그램의 기본 구조 (0) | 2021.09.13 |
| 파이썬 게임 002. pygame 패키지 설치 및 예제 프로그램 실행 (0) | 2021.09.07 |
| 파이썬 게임 : pygame 패키지 2.0.0 릴리즈 (0) | 2020.10.30 |