본문 바로가기

코딩/파이썬 pygame

파이썬 게임 003. 함수 기반 pygame 프로그램의 기본 구조, Pygame 문서

 

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

https://www.pygame.org/docs

 

pygame.org