결과
개요
게임 설정에 필요한 정보를 클래스 한 곳에 모은다.
코드 이곳저곳에 설정값이 분산돼있으면 유지보수가 힘들다.
1. 같은 폴더내 settings.py 파일(모듈)을 생성한다.
2. Settings 클래스를 만들고 초기화에서 속성값 지정한다.
3. aliens_invasion.py에서 위 모듈 - 클래스 - 속성을 불러와 사용한다.
+ 챕터 12.3.4까지의 내용이다.
코드
aliens_invasion.py
import sys
import pygame
from settings import Settings # 1. 세팅 모듈 부르기
class AlienInvasion :
"""게임 자원과 동작을 전체적으로 관리하는 클래스"""
def __init__(self) :
"""게임을 초기화하고 게임 자원을 만듭니다"""
pygame.init()
self.clock = pygame.time.Clock()
self.settings = Settings() # 2. 세팅 인스턴스 생성
self.screen = pygame.display.set_mode(
(self.settings.screen_width, self.settings.screen_height)) # 3. 속성 사용
pygame.display.set_caption("Alien Invasion")
def run_game(self) :
"""게임의 메인 루프를 시작합니다"""
while True :
# 키보드와 마우스 이벤트에 응답합니다.
for event in pygame.event.get() :
if event.type == pygame.QUIT :
sys.exit()
# 루프를 반복할 때마다 화면을 다시 그립니다.
self.screen.fill(self.settings.bg_color) # 4. 속성 사용
# 가장 최근에 그린 화면 표시합니다.
pygame.display.flip()
self.clock.tick(60)
if __name__ == '__main__' :
ai = AlienInvasion()
ai.run_game()
settings.py
class Settings:
"""외계인 침공의 설정을 저장하는 클래스"""
def __init__(self) :
"""게임 설정 초기화"""
# 화면 설정
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (230, 230, 230)
'파이썬 (Python) > 파이썬 크래시 코스 - 에릭 마테스' 카테고리의 다른 글
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 5 (0) | 2024.03.22 |
---|---|
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 4 (0) | 2024.03.17 |
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 3 (0) | 2024.03.15 |
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 1 (0) | 2024.03.10 |
댓글