[python] Pygame을 활용한 아케이드 게임 만들기

이번 프로젝트에서는 Python 프로그래밍 언어와 Pygame 라이브러리를 사용하여 간단한 아케이드 게임을 만들어보겠습니다. Pygame은 Python으로 게임을 개발할 때 자주 사용되는 라이브러리로, 그래픽, 사운드, 입력 처리 등 다양한 기능을 제공합니다.

목차

  1. 프로젝트 설정
  2. 게임 화면 설정
  3. 플레이어 생성
  4. 적 생성
  5. 게임 루프
  6. 종료 처리

프로젝트 설정

먼저, Pygame을 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

pip install pygame

게임 화면 설정

Pygame을 사용하여 게임 화면을 설정하는 첫 번째 단계입니다. 다음과 같은 코드로 게임 화면을 설정할 수 있습니다.

import pygame

# 게임 화면 크기 설정
WIDTH = 800
HEIGHT = 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("아케이드 게임")

플레이어 생성

다음으로, 플레이어를 생성하는 코드입니다. 플레이어는 키보드 입력에 따라 이동할 수 있어야 합니다.

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.Surface((50, 50))
        self.image.fill((255, 0, 0))
        self.rect = self.image.get_rect()
        self.rect.center = (WIDTH / 2, HEIGHT / 2)
        self.speed = 5

    def update(self):
        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            self.rect.x -= self.speed
        if keys[pygame.K_RIGHT]:
            self.rect.x += self.speed
        if keys[pygame.K_UP]:
            self.rect.y -= self.speed
        if keys[pygame.K_DOWN]:
            self.rect.y += self.speed

적 생성

게임에는 적도 포함되어야 합니다. 그들은 랜덤한 위치에서 나타나며, 플레이어와 충돌하면 게임이 종료됩니다.

class Enemy(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.Surface((30, 30))
        self.image.fill((0, 0, 255))
        self.rect = self.image.get_rect()
        self.rect.x = random.randrange(WIDTH - self.rect.width)
        self.rect.y = random.randrange(HEIGHT - self.rect.height)

    def update(self):
        pass

게임 루프

이제 게임 루프를 생성하여 게임을 실행할 차례입니다. 게임 루프는 게임 화면을 업데이트하고 플레이어와 적의 움직임을 처리합니다.

# 플레이어 생성
player = Player()

# 적 생성
enemies = pygame.sprite.Group()
for _ in range(10):
    enemy = Enemy()
    enemies.add(enemy)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    player.update()
    enemies.update()

    screen.fill((0, 0, 0))
    screen.blit(player.image, player.rect)
    for enemy in enemies:
        screen.blit(enemy.image, enemy.rect)

    pygame.display.flip()

pygame.quit()

종료 처리

게임이 종료되면 pygame.quit()을 호출하여 Pygame을 종료해야 합니다.

이제 기본적인 아케이드 게임을 만드는 방법을 알게 되었습니다. 이를 기반으로 추가적인 기능을 구현하거나 확장하는 등 개인적인 창작물을 만들어볼 수 있습니다. Pygame 공식 문서와 튜토리얼을 참고하여 게임을 더욱 발전시켜보세요.

참고 자료