본문 바로가기

Python/파이썬 프로젝트

[모듈 2-10] pygame 패키지의 기본 사용법

안녕하세요! wonking 쌤입니다.

 

오늘은 pygame이란 파이썬에서 제공하는 강력한 게임 제작 패키지를 사용해 보겠습니다.

 

 

 

 

1. pygame 패키지 세팅

 

우선 새로운 파이썬 프로젝트를 만들어 봅시다.

 

그래고 pygame 패키지를 설치해 볼까요?

 

 

pygame은 우리가 사용하던 setting에서 검색이 안되는 경우가 많아서 다른 방식으로 설치해 보겠습니다.

 

 

프로젝트 하단에 Terminal 창을 여시고, 

 

pip install pygame 이라 명령어를 넣어주세요.

 

 

import pygame

pygame.init()

그리고 이렇게 코드를 돌렸을때, 아래와 같은 결과가 나오면 pygame이 잘 설치 된 것입니다.

 

 

 

 

 

 

 

 

 

 

2. 게임화면 기본 구성하기

 

 - 우선 아래 코드를 자신의 프로젝트에 복붙 해보세요.

### 1. pygame 선언

import pygame
pygame.init()           # pygame 초기화

#### 2. pygame에 사용되는 전역변수 선언
Color = (255, 255, 255)  # 하얀색
size = [400, 300]
screen = pygame.display.set_mode(size)
done = False
clock = pygame.time.Clock()


#### 3. pygame 무한루프 : 게임 본체
def runGame():
    global done
    while not done:
        clock.tick(10)
        screen.fill(Color)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:  # 게임 화면 종료
                done = True
        pygame.display.update()   # 게임 화면 업데이트


#### 4. pygame 게임 종료
runGame()
pygame.quit()

 

Q. 아래 숫자를 변경해 보세요? 어떤 변화가 일어나나요?

Color = (255, 255, 255)  # 하얀색
size = [400, 300]

 

 

 

 

 

 

 

3. 게임 캐릭터 불러오기

 

구글에서 적당한 게임 캐릭터를 불러온다.

 

 

 

 

 

게임 캐릭터 그림의 배경을 power pointer 로 지워준다.

 

 

그리고 저장된 png 파일은 같은 프로젝터 폴더에 넣어준다.

 

 

 

아래 코트를 타이핑 하여 추가해 준다.

### 1. pygame 선언

import pygame
pygame.init()           # pygame 초기화

#### 2. pygame에 사용되는 전역변수 선언
Color = (255, 255, 255)  # 하얀색
size = [400, 300]
screen = pygame.display.set_mode(size)
done = False
clock = pygame.time.Clock()


#!#!#!# 추가 코드 #!#!#!#
# pygame에 사용하도록 피카츄 이미지를 호출
pika = pygame.image.load('pika.png')
pika = pygame.transform.scale(pika, (50, 50)) # 이미지 스케일링

#### 3. pygame 무한루프 : 게임 본체
def runGame():
    global done, pika #!#!#!# 추가 코드 #!#!#!#
    pika_x = 0        #!#!#!# 추가 코드 #!#!#!#
    pika_y = 0        #!#!#!# 추가 코드 #!#!#!#

    while not done:
        clock.tick(10)
        screen.fill(Color)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:  # 게임 화면 종료
                done = True
        screen.blit(pika, (pika_x, pika_y))  #!#!#!# 추가 코드 #!#!#!#
        pygame.display.update()   # 게임 화면 업데이트


#### 4. pygame 게임 종료
runGame()
pygame.quit()

 

 

이렇게 피카추카 좌표계 (0,0)에 위치해 있다. 

 

 

 

 

 

 

 

 

4. 게임 캐릭터 움직이기

 

- 아래 추가 코드를 타이핑 하여 동작시키시오.

### 1. pygame 선언

import pygame
pygame.init()           # pygame 초기화

#### 2. pygame에 사용되는 전역변수 선언
Color = (255, 255, 255)  # 하얀색
size = [400, 300]
screen = pygame.display.set_mode(size)
done = False
clock = pygame.time.Clock()

# pygame에 사용하도록 피카츄 이미지를 호출
pika = pygame.image.load('pika.png')
pika = pygame.transform.scale(pika, (50, 50)) # 이미지 스케일링

#### 3. pygame 무한루프 : 게임 본체
def runGame():
    global done, pika
    pika_x = 0
    pika_y = 0

    while not done:
        clock.tick(10)
        screen.fill(Color)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:  # 게임 화면 종료
                done = True
            # !#!#!# 추가 코드시작 #!#!#!#
            # 방향키 입력에 대한 이벤트 처리 
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_UP:
                    pika_y -= 10
                elif event.key == pygame.K_DOWN:
                    pika_y += 10
            # !#!#!# 추가 코드 끝 #!#!#!#

        screen.blit(pika, (pika_x, pika_y))  
        pygame.display.update()   # 게임 화면 업데이트





#### 4. pygame 게임 종료
runGame()
pygame.quit()

 

 

피카추가 잘 움직이나요??

 

 

 

 

 

5. 도전과제 

2가지 도전과제를 통해 이번 모듈 이해를 점검해 봅시다.

 

 

 

[도전 과제 1]

코드를 추가하여 게임 캐릭터가 양 옆(x축)으로 움직이게 코드를 짜보시오.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[도전 과제 2]

피카추가 밖으로 나가진 않나요? 코드를 추가하여 피카추가 화면 밖으로 안나가게 하시오.

 

 

 

 

 

 

자료 출처 :  ai-creator.tistory.com/522?category=807420

 

자료 편집 : 성원경 / 경기기계공업고등학교 교사