Pygame 프로그램 개발 시작 단계에서 클래스를 기반으로 프로그램의 구조를 구성하면 <코드 1>과 같다.
<코드 1>
# python 3.9.6
# pygame 2.0.1
import pygame
class GameApp:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((640, 480))
self.running = True
def game_input(self):
for event in pygame.event.get():
if event.type == pygame.QUIT \
or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
self.running = False
break
if not self.running:
return
def game_process(self):
pass
def display_update(self):
pass
def run(self):
while self.running:
self.game_input()
if not self.running:
continue
self.game_process()
self.display_update()
pygame.quit()
if __name__ == '__main__':
GameApp().run()
GameApp 클래스의 인스턴스를 생성함과 동시에 run 메서드를 호출한다.
GameApp().run()
GameApp 클래스의 run() 메서드는 인스턴스 변수 running의 값이 True이면, game_input(), game_process()와 display_update() 메서드를 무한, 반복적으로 실행한다.
while self.running:
self.game_input()
if not self.running:
continue
self.game_process()
self.display_update()
game_input() 메서드에서 프로그램 종료를 의미하는 이벤트가 발생하면 인스턴스 변수 running의 값을 False로 바꾼다.
for event in pygame.event.get():
if event.type == pygame.QUIT \
or event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
self.running = False
break
'코딩 > 파이썬 pygame' 카테고리의 다른 글
파이썬 게임 006. pygame.time.Clock 클래스를 이용해 게임 화면이 바뀌는 시간 제어 (0) | 2021.09.23 |
---|---|
파이썬 게임 005. pygame.Surface.fill 함수로 게임 배경색 변경 (0) | 2021.09.21 |
파이썬 게임 003. 함수 기반 pygame 프로그램의 기본 구조, Pygame 문서 (0) | 2021.09.09 |
파이썬 게임 002. pygame 패키지 설치 및 예제 프로그램 실행 (0) | 2021.09.07 |
파이썬 게임 : pygame 패키지 2.0.0 릴리즈 (0) | 2020.10.30 |