[python] Pygame을 활용한 블록 퍼즐 게임 만들기

이번에는 Python의 게임 개발 라이브러리인 Pygame을 사용하여 블록 퍼즐 게임을 만들어 보겠습니다. 이 게임에서는 화면에 나타나는 블록을 조작하여 가로 혹은 세로로 일렬로 나열된 블록을 제거하는 것이 목표입니다.

필요한 라이브러리 설치

먼저, Pygame 라이브러리를 설치해야 합니다. 아래의 명령어를 터미널에서 실행하여 Pygame을 설치합니다.

pip install pygame

게임 화면 설정

게임을 만들기 전, Pygame의 초기 설정을 해야 합니다. 아래의 코드를 작성하여 게임 창을 생성하고 기본 설정을 추가합니다.

import pygame

# 화면 크기 설정
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# 색상 정의
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

# 게임 창 생성
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("블록 퍼즐 게임")

# 게임 루프
running = True
while running:
    # 이벤트 처리
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 게임 화면 업데이트
    screen.fill(BLACK)
    pygame.display.flip()

# 게임 종료
pygame.quit()

블록 클래스 구현

게임에서 사용할 블록을 정의하는 블록 클래스를 구현해보겠습니다. 블록은 색상, 크기, 위치 등의 속성을 가집니다. 아래의 코드를 작성하여 블록 클래스를 구현합니다.

class Block:
    def __init__(self, color, size, x, y):
        self.color = color
        self.size = size
        self.x = x
        self.y = y

    def draw(self, screen):
        pygame.draw.rect(screen, self.color, (self.x, self.y, self.size, self.size))

게임 로직 구현

이제 게임의 로직을 구현해보겠습니다. 게임에서는 사용자의 입력에 따라 블록을 움직이고 제거하는 기능이 필요합니다. 아래의 코드를 작성하여 게임 로직을 구현합니다.

# 현재 화면에 그려진 블록들을 저장하는 리스트
blocks = []

# 게임 루프
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_LEFT: # 왼쪽으로 이동
                pass
            elif event.key == pygame.K_RIGHT: # 오른쪽으로 이동
                pass
            elif event.key == pygame.K_SPACE: # 블록 제거
                pass

    # 블록들 그리기
    for block in blocks:
        block.draw(screen)

    pygame.display.flip()

pygame.quit()

게임 실행

이제 모든 코드를 작성했으니 게임을 실행해보겠습니다. 실행시키기 전에 아래의 코드를 추가하여 블록들을 화면에 그려봅시다.

# 초기 블록 생성
blocks.append(Block((255, 0, 0), 50, 100, 100))
blocks.append(Block((0, 255, 0), 50, 200, 100))
blocks.append(Block((0, 0, 255), 50, 300, 100))

위 코드를 게임 루프 바로 아래에 추가해주세요. 이제 코드를 실행하면 빨간색, 초록색, 파란색 블록이 화면에 나타나는 것을 확인할 수 있습니다.

이상으로 Pygame을 활용한 간단한 블록 퍼즐 게임 만들기를 알아보았습니다. Pygame의 다양한 기능과 더 복잡한 게임 로직을 추가하여 보다 완성도 높은 게임을 만들어 볼 수도 있습니다.

참고 자료