본문 바로가기

Python/Python Pygame 02 - Snake Game

Python Pygame 02 - Snake Game 00

안녕하세요. 오늘부터 pygame을 이용해서 Snake Game을 만들려고 합니다. 온라인 상에서 쉽게 Sample Code를 찾아서 쓸 수 있지만, 개인적으로 만들려고 합니다. 저도 처음으로 pygame을 써보는 거라서 여기저기 인터넷, 유튜브, 블로그를 보면서 공부를 하고 만들기 시작했습니다.

일단 시작을 하기전에 Pygame을 설치해야합니다.

>> py -m pip install -U pygame –user

이라고 입력을 하면 위 이미지와 같은 결과가 나올 것입니다. 그리고 나서

>> py -m pygame.examples.aliens

라고 입력을 해서 Hello from the pygame community. https://www.pygame.org/contribute.html이 나오면 됩니다.

정말로 쉽게 설치가 가능합니다.

그럼 이제 시작을 하겠습니다.

일단 다른 사람들이 한 것을 보니 총 4가지로 나눠서 코딩을 하면 된다는 것을 알았습니다.

처음에는 그림을 그리는 함수 입니다. 그리는 것도 3가지로 나뉩니다. 바탕, , 그리고 먹이 이렇게 3가지를 그리는 함수가 필요합니다.

두번째로는 뱀의 움직임을 Update를 해주는 함수가 필요합니다. 이때 키보드 입력에 따라서 왼쪽 혹은 오른쪽으로 움직일 수 있게 해주는 것도 필요합니다.

세번째로는 먹이가 생성되는 함수가 필요합니다. 뱀이 먹이를 먹으면 무작위로 다른 위치에 먹이가 나오게 하는 함수가 필요합니다.

마지막으로 뱀이 밖으로 나가게 되면 GameOver 시키는 함수가 필요합니다.

일단 저는 몸이 1개인 뱀과 Background를 그리는 함수까지 만들겠습니다.

일단 쓴 코드를 올리겠습니다.

#Snake Game

 

import math

import random

import pygame

 

def DrawMapLines(gamewindow,rows, width):

    x = 0

    y = 0

    for i in range(rows):

        x = x + 25

        y = y + 25

        pygame.draw.line(gamewindow, (255,255,255), (x,0),(x,width))

        pygame.draw.line(gamewindow, (255,255,255), (0,y),(width,y))

 

def DrawSnake(gamewindow,snake,ratio):

    for i in range(len(snake)):

        pygame.draw.rect(gamewindow, (255,0,0), (snake[i][0]*ratio+1,snake[i][1]*ratio+1, 24, 24))

 

def DrawGame(gamewindow,rows,width,ratio,snake):

    #Draw Map

    DrawMapLines(gamewindow,rows, width)

    #Draw Snake

    DrawSnake(gamewindow,snake,ratio)

    pygame.display.update()

 

def main():

    clock = pygame.time.Clock()

    width = 500

    rows = 20

    ratio = width // rows

    gamewindow = pygame.display.set_mode((width, width))

    snake = [[10,10]]

    while 1:

        pygame.time.delay(100)

        clock.tick(20)

        gamewindow.fill((0,0,0))

        #Update Snake

       

        #Generate Apple

 

        #GameOver

       

        #Draw Game

        DrawGame(gamewindow,rows,width,ratio,snake)

 

main()

위의 코드를 돌리면 아래와 같은 그림이 나옵니다.

일단 이렇게 하면 처음 그림 그리는 것은 완료가 됩니다. 물론 먹이가 그려지는 것은 다음 글에서 설명을 하겠습니다.

다들 알겠지만 Snake 게임은 뱀(빨간색)이 한칸씩 왼쪽 혹은 오른쪽으로 움직이면서 먹이를 찾아서 먹고 뱀의 몸이 한칸씩 늘어가는 것 입니다.

오늘 저는 여기까지하고 다음에 계속 이어서 코딩을 해서 다 만들겠습니다.

'Python > Python Pygame 02 - Snake Game' 카테고리의 다른 글

Python Pygame 02 - Snake Game 01  (0) 2019.07.24