본문 바로가기
파이썬 (Python)/파이썬 크래시 코스 - 에릭 마테스

[Python] 실습편 - 외계인 침공 : 불을 뿜는 우주선 1

by Minkyu Lee 2024. 3. 10.

 

결과

개요

파이게임 모듈을 사용해 게임 만들기를 시작한다. 

이번 실습은 기본 창 구성법이다.

 

1. 게임 자원, 동작을 관리하는 클래스를 생성한다.

2. 초기화에서 게임 창생성 기초 설정을 한다.

3. 게임의 메인 루프 메서드를 만든다. 무한 루프로 구성된다.

4. 클래스의 인스턴스생성 후, 메서드실행한다.

 

+ 챕터 12.3.3까지의 내용이다.

코드

import sys #모듈 임포트
import pygame #모듈 임포트

class AlienInvasion : #클래스 첫글자는 대문자. 함수처럼 괄호 X
    """게임 자원과 동작을 전체적으로 관리하는 클래스"""

    def __init__(self) : # 인스턴스 생성시 자동실행 메소드. self는 인스턴스 자신을 지칭한다.
        """게임을 초기화하고 게임 자원을 만듭니다"""
        pygame.init() # 파이게임 동작 초기화
        self.clock = pygame.time.Clock() # pygame.time 모듈의 Clock 객체 생성

        self.screen = pygame.display.set_mode((1200, 800)) #게임창 만들기. self.screen을 서피스라고 부른다.
        pygame.display.set_caption("Alien Invasion")

        # 배경색을 설정합니다.
        self.bg_color = (230, 230, 230)

    def run_game(self) :
        """게임의 메인 루프를 시작합니다"""
        while True : # 무한 루프
            # 키보드와 마우스 이벤트에 응답합니다.
            for event in pygame.event.get() : # 이벤트 루프. 사용자 행동에 대응한다.
                if event.type == pygame.QUIT :
                    sys.exit()

            # 루프를 반복할 때마다 화면을 다시 그립니다.
            self.screen.fill(self.bg_color)

            # 가장 최근에 그린 화면 표시합니다.
            pygame.display.flip() # 게임 화면 업데이트 하는 역할
            self.clock.tick(60) # 게임 프레임 속도

if __name__ == '__main__' : #인터프리터에서 직접 실행된 경우에만 작동. 모듈로 임포트 되면 작동 X
    ai = AlienInvasion()
    ai.run_game()
 

 

댓글