[python] Pygame으로 플래피 버드 게임 개발하기

이번 포스트에서는 Python과 Pygame 라이브러리를 사용하여 플래피 버드 게임을 개발하는 방법에 대해 알아보겠습니다. 플래피 버드는 간단한 2D 게임으로, 사용자가 부드럽게 조작하여 장애물을 피해 살아남는 것이 목표입니다.

1. Pygame 설치하기

먼저, Pygame을 설치해야 합니다. 다음 명령어를 사용하여 Pygame을 설치할 수 있습니다:

pip install pygame

2. 게임 창 초기화하기

Pygame을 사용하여 게임 창을 초기화하는 방법은 다음과 같습니다.

import pygame

# 게임 창 초기화
pygame.init()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))

3. 이미지와 오디오 로드하기

게임에 사용할 이미지와 오디오를 로드하는 방법은 다음과 같습니다. 이미지 파일과 오디오 파일은 사전에 준비되어 있어야 합니다.

# 이미지 로드
background_image = pygame.image.load("background.png")
bird_image = pygame.image.load("bird.png")

# 오디오 로드
flap_sound = pygame.mixer.Sound("flap.wav")

4. 게임 루프 만들기

게임 루프는 게임이 실행되는 동안 사용자 입력을 처리하고 게임 상태를 업데이트하는 역할을 합니다. 다음은 기본적인 게임 루프의 구조입니다.

# 게임 루프
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    
    # 게임 상태 업데이트
    
    # 화면 업데이트
    
    pygame.display.flip()

5. 플래피 버드 만들기

플래피 버드는 사용자가 조작할 수 있는 캐릭터입니다. 다음은 플래피 버드를 만들고 조작하는 방법입니다.

class Bird:
    def __init__(self, x, y):
        self.image = bird_image
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.vel_y = 0
    
    def update(self):
        self.vel_y += gravity
        self.rect.y += self.vel_y
    
    def flap(self):
        self.vel_y = -10
        flap_sound.play()
    
    def draw(self):
        screen.blit(self.image, self.rect)

6. 장애물과 충돌 처리하기

플래피 버드는 장애물과 충돌하지 않도록 해야 합니다. 다음은 장애물을 생성하고 충돌 처리하는 방법입니다.

class Obstacle:
    def __init__(self, x, y):
        self.image = obstacle_image
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
    
    def update(self):
        self.rect.x -= obstacle_speed
    
    def draw(self):
        screen.blit(self.image, self.rect)
    
    def check_collision(self, bird):
        if self.rect.colliderect(bird.rect):
            return True
        return False

7. 게임 실행하기

위에서 만든 클래스를 사용하여 게임을 실행하는 방법은 다음과 같습니다.

bird = Bird(100, height//2)
obstacles = []

# 게임 루프
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                bird.flap()
    
    # 게임 상태 업데이트
    bird.update()
    
    for obstacle in obstacles:
        obstacle.update()
        if obstacle.check_collision(bird):
            running = False
    
    # 화면 업데이트
    screen.blit(background_image, (0, 0))
    bird.draw()
    for obstacle in obstacles:
        obstacle.draw()
    
    pygame.display.flip()

이제 위에서 작성한 코드를 실행하면 플래피 버드 게임을 플레이할 수 있습니다. 즐겁게 게임을 즐기시기 바랍니다!


참조: