파이썬 팁

파이썬으로 게임을 만들 수 있다고? pygame 1탄: pygame 설치 및 기본기능 알아보기

gomming 2020. 9. 26. 00:44
pip install pygame

파이썬 모듈 중에는 게임을 개발할 수 있는 pygame 이라는 모듈이 있어요

설치방법은 pip를 써서 간단히 이용해 볼 수 있는데요

 

pygame 1.9.6 이 금방 설치 되었어요

모듈 임포트하기

import pygame import pygame as pg import sys

 

모듈을 불러오면 공식 사이트의 커뮤니티 경로를 알려줍니다 ! ,!

https://www.pygame.org/wiki/Contribute

 

아래 코드를 보면서 기본 기능을 소개해 드립니다 !. !

기본기능 순서

1. 파이게임으로 생성할 게임의 창 크기 설정하기

2. 창이름 설정하기

3. 화면 출력 설정하기

4. 이벤트 검사 코드

5. 화면 배경색상 설정하기

6. 집 그리기 예제 코드

 

import numpy as np
import pygame
import pygame as pg

BLACK= ( 0,  0,  0)
WHITE= (255,255,255)
BLUE = ( 0,  0,255)
GREEN= ( 0,255,  0)
RED  = (255,  0,  0)

size  = [400,300]
screen= pygame.display.set_mode(size)

pygame.display.set_caption("Game Title")
  
done= False
clock= pygame.time.Clock()

pygame.display.set_caption("Game Title")

 

1. 파이게임으로 생성할 게임의 창 크기 설정하기

다음은 파이게임의 디스플레이 초기화 기능입니다.

size = [400, 300]

screen = pygame.display.set_mode(size)

 

400은 가로, 300은 세로 크기 입니다.

실행하면 위와 같이 해당 사이즈의 창이 나타납니다.

 

2. 창이름 설정하기

pygame.display.set_caption("Game Title")

게임 타이틀이 "Game Titile"이 됩니다.

 

저는 간단한 미니 게임을 만들어 볼까하는데요. 아이디어는 계속 구상 중이에요

게임이름은 존버(예명:John-bur) 이고 연습 삼아서 재밋게 만들어 보려고요 ! .!

 

 

3. 화면 출력 설정하기

done=False

clock = pygame.time.Clock()

화면의 FPS 설정입니다.

 

이제 아래 메인코드가 등장합니다.

while not done:
    clock.tick(10)

    for eventin pygame.event.get():
        if event.type == pygame.QUIT:
            done=True 
  
    screen.fill(WHITE)

    pygame.draw.polygon(screen, GREEN, [[30,150], [125,100], [220,150]],5)
    pygame.draw.polygon(screen, GREEN, [[30,150], [125,100], [220,150]],0)
    pygame.draw.lines(screen, RED,False, [[50,150], [50,250], [200,250], [200,150]],5)
    pygame.draw.rect(screen, BLACK, [75,175,75,50],5)
    pygame.draw.rect(screen, BLUE, [75,175,75,50],0)
    pygame.draw.line(screen, BLACK, [112,175], [112,225],5)
    pygame.draw.line(screen, BLACK, [75,200], [150,200],5)
 
    pygame.display.flip()

 

화면 출력은

clock.tick(10)

이와 같이 입력하여 화면을 초당 10번 출력하도록 할 수 있습니다.

적정 수치는 10~60사이 입니다.

 

4. 이벤트 검사 코드

게임 내에서 발생된 이벤트 내용을 확인하는 검사 코드를 for문으로 작성할 수 있습니다.

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

위 코드는 게임 내에서 종료 버튼을 클릭하면 게임을 종료하는 이벤트가 되겠습니다.

 

pygame.QUIT 를 통해 종료 이벤트를 정의할 수 있습니다.

 

GUI창에서 x 종료 버튼을 클릭하면 동작하게 됩니다.

x버튼을 클릭하면 while문이 돌지 않게 됩니다.

 

5. 화면 배경색상 설정하기

 

screen.fill(WHITE)

코드를 통해 ()안의 생상으로 화면을 채울 수 있습니다.

 

6. 집 그리기 예제 코드

pygame.draw.polygon(screen, GREEN, [[30,150], [125,100],[220,150]],5)

pygame.draw.polygon(screen, GREEN, [[30,150], [125,100], [220,150]],0)

pygame.draw.lines(screen, RED,False, [[50,150], [50,250], [200,250], [200,150]],5)

pygame.draw.rect(screen, BLACK, [75,175,75,50],5)

pygame.draw.rect(screen, BLUE, [75,175,75,50],0)

pygame.draw.line(screen, BLACK, [112,175], [112,225],5)

pygame.draw.line(screen, BLACK, [75,200], [150,200],5)

 

위 코드에서는 도형을 그리기 위한 기능이 소개 되어있습니다.

작성 결과 !

대표사진 삭제

사진 설명을 입력하세요.

 

7. 화면 업데이트

pygame.display.flip()

위 코드를 통해 화면에서 발생 된 이벤트들을 업데이트 할 수 있습니다.

pygame 메인 루프 마지막에 위치해야 하는 코드가 되겠습니다.