2019년 6월 6일 목요일

#Pygame 슈팅게임 만들기(python) - part 1 - 준비하기


Pygame 슈팅게임 만들기 part 1 - 준비하기



Python으로 간단한 게임을 만드는 법을 찾아보다가

http://kidscancode.org 이라는 곳이 정리가 잘 되어있어 정리해보려고 합니다

해당 시리즈는 슈팅게임을 만들지만

이를 응용하면 다양한 게임을 만들 수 있습니다.



Pygame 이란?


Pygame은 멀티미디어 제어용 크로스 플랫폼 C 라이브러리 인 SDL 용 Python 래퍼입니다. 

즉, 파이 게임을 사용하면 비디오 게임이나 다른 멀티미디어 응용 프로그램을 파이썬으로 작성할 수 있습니다.



(git - bash에서 실행 해줬습니다)



1. 가상환경 구성하기(선택)


jangc@DESKTOP-14NC1CL MINGW64 ~/Desktop/makevirtual
$ python - m venv myvenv

pygame 라이브러리를 독립적으로 사용하기 위해서 가상환경을 만들어서 설치해주도록 하겠습니다.


jangc@DESKTOP-14NC1CL MINGW64 ~/Desktop/makevirtual
$ . myvenv/Scripts/activate

가상환경을 실행시켜줍니다


(myvenv)
jangc@DESKTOP-14NC1CL MINGW64 ~/Desktop/makevirtual

실행된것을 확인해줍시다.



2. Pygame 설치하기


jangc@DESKTOP-14NC1CL MINGW64 ~/Desktop/makevirtual
$ pip install pygame
Collecting pygame
Using cached https: // files.pythonhosted.org/packages/ed/56/b63ab3724acff69f4080e54c4bc5f55d1fbdeeb19b92b70acf45e88a5908/pygame-1.9.6-cp37-cp37m-win_amd64.whl
Installing collected packages: pygame
Successfully installed pygame-1.9.6
You are using pip version 18.1, however version 19.1.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

pip install pygame을 이용해서 Pygame을 설치해줍니다.



3. 게임 기본환경 만들기


# Pygame template - skeleton for a new pygame project

import pygame #pygame을 사용하기 위해 import해줍니다
import random #추후에 랜덤속성을 사용하기 위해 import해줬습니다.

WIDTH = 360 #game창의 크기를 상수로 지정해서 사용해줍니다.
HEIGHT = 480

FPS = 30 #프레임 레이트로 1초동안 보여줄 Frame(화면)을 지정

# define colors
WHITE = (255, 255, 255) #color또한 기본 색상에 대해 미리 지정해줍니다.
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)

# initialize pygame and create window

pygame.init() #pygame 을 초기화 하고 시작합니다.
pygame.mixer.init() #pygame의 믹서(음향)에 대해서도 초기화 하고 시작합니다.

screen = pygame.display.set_mode((WIDTH, HEIGHT)) #우리의 게임이 나타날 screen을 만들어 줍니다.
pygame.display.set_caption("My Game") #그리고 screen의 캡션, 웹페이지의 title과 비슷한 부분도 설정해준다.
clock = pygame.time.Clock() #게임내 시간을 우리가 원하는대로 환경의 구분없이 일정하게 유지하기 위해서 설정해주었다.

# Game loop
running = True #의미론적으로 True일때 게임이 돌아가고 있다는 것을 나타내기 위해서

while running:
# keep loop running at the right speed #이부분은 프로세스 및 이벤트의 입력이 들어가는 부분입니다.


clock.tick(FPS) #FPS에서 설정해준 속도대로(30이면 1초에 30번 while문이 돈다) 실행된다.
# Process input (events)
for event in pygame.event.get(): #loop가 돌 때 키보드 입력 및 마우스 이동 등의 이벤트가 발생하게 되면
# check for closing window #프레임이 표시된 이후 이벤트들을 저장하여 for문을 통해 순서대로 event를 꺼내올 수 있다.
if event.type == pygame.QUIT: #만약 입력된 event의 type이 종료라면
running = False #True로 설정되어있는 running을 False로 만들어 Game loop를 빠져나온다.

# Update #해당 frame내에서 업데이트 될 사항에

# Draw / render #그리고 업데이트 된 부분을 화면에 그려주는 역할을 한다
screen.fill(BLACK) #스크린을 BLACK으로 채우라는 말입니다.
# *after* drawing everything, flip the display
pygame.display.flip() #이 부분에 flip이라는 단어가 들어간 이유는
#실제로 display를 바꾸는 과정은 많은 시간을 소요한다
#따라서 한 프레임이 보여지고 있을때 다음 프레임을
#그 프레임 뒷면에 준비를 하고 해당 프레임이 끝나면 뒤집어 보여줌으로써
#빠르게 프로세스가 처리되는것처럼 보이게 한다.

pygame.quit() #pygame을 종료





다음 게시글 : Player 객체 만들기

댓글 없음:

댓글 쓰기

가장 많이 본 글