개요
run_game 메서드의 코드가 길어지고 있다.
이를 해결하기 위해, 보조 메서드 두 개로 분리한다.
보조 메서드란 클래스 내부에서만 사용하는 메서드를 일컫는다.
보조 메서드는 구분을 위해 맨 앞에 _를 붙인다.
이렇게 기존 코드를 단순화는 것을 리팩터링이라고 한다.
+ 챕터 12.5.2 까지의 내용이다.
코드
alien_invasion.py
import sys
import pygame
from settings import Settings
from ship import Ship
class AlienInvasion :
"""게임 자원과 동작을 전체적으로 관리하는 클래스"""
def __init__(self) :
"""게임을 초기화하고 게임 자원을 만듭니다"""
pygame.init()
self.clock = pygame.time.Clock()
self.settings = Settings()
self.screen = pygame.display.set_mode(
(self.settings.screen_width, self.settings.screen_height))
pygame.display.set_caption("Alien Invasion")
self.ship = Ship(self)
def run_game(self) :
"""게임의 메인 루프를 시작합니다"""
while True :
self._check_event() # 3. 보조 메서드 사용
self._update_screen() # 4. 보조 메서드 사용
self.clock.tick(60)
def _check_event(self) : # 1. 보조 메서드 정의
'''키 입력과 마우스 이벤트에 응답합니다.'''
for event in pygame.event.get() :
if event.type == pygame.QUIT :
sys.exit()
def _update_screen(self) : # 2. 보조 메서드 정의
'''화면의 이미지를 업데이트하고 화면을 새로 그립니다.'''
self.screen.fill(self.settings.bg_color)
self.ship.blitme()
pygame.display.flip()
if __name__ == '__main__' :
ai = AlienInvasion()
ai.run_game()
'파이썬 (Python) > 파이썬 크래시 코스 - 에릭 마테스' 카테고리의 다른 글
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 5 (0) | 2024.03.22 |
---|---|
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 3 (0) | 2024.03.15 |
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 2 (0) | 2024.03.10 |
[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 1 (0) | 2024.03.10 |
댓글