Pygame으로 간단한 게임 만들기 #1 – 초보자를 위한 기초 가이드

안녕하세요!김코딩입니다

파이썬으로 게임을 만들고 싶다면 Pygame이 좋은 선택입니다! Pygame은 쉽고 직관적인 API를 제공하여 간단한 2D 게임을 만들기에 적합한 라이브러리입니다. 이번 글에서는 Pygame을 설치하는 방법부터 간단한 게임을 만드는 과정까지 알아보겠습니다.


Pygame 설치하기

먼저 Pygame을 설치해야 합니다. 터미널(또는 명령 프롬프트)에서 아래 명령어를 입력하세요:

pip install pygame

설치가 완료되었다면, Pygame이 정상적으로 작동하는지 확인하기 위해 다음 코드를 실행해 보세요:

import pygame
pygame.init()
print("Pygame이 정상적으로 실행되었습니다!")

만약 오류 없이 실행된다면 Pygame이 성공적으로 설치된 것입니다. 🎉


🎨 기본 창 만들기

Pygame을 사용하면 쉽게 게임 창을 만들 수 있습니다. 아래 코드를 실행하면 500×500 크기의 창이 생성됩니다.

import pygame

pygame.init()

# 창 크기 설정
WIDTH, HEIGHT = 500, 500
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Pygame 기본 창")

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

# 게임 루프
running = True
while running:
screen.fill(WHITE) # 배경을 흰색으로 채우기
for event in pygame.event.get():
if event.type == pygame.QUIT: # 창 닫기 버튼 클릭 시 종료
running = False

pygame.display.update() # 화면 업데이트

pygame.quit()

이 코드를 실행하면 흰색 배경의 게임 창이 나타납니다!


🏃 캐릭터 움직이기

이제 키보드 입력을 받아서 캐릭터(사각형)를 움직여 봅시다.

import pygame
import random
# pygame 초기화
pygame.init()

# 화면 크기 설정
WIDTH, HEIGHT = 500, 500
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("캐릭터 이동 게임")

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

# 캐릭터 설정
player_x, player_y = WIDTH // 2, HEIGHT // 2 # 화면 중앙에서 시작
player_size = 50
speed = 5

# 목표물 설정
target_x, target_y = 100, 100
target_size = 20
score = 0

# 폰트 설정 (점수 표시용)
font = pygame.font.SysFont("Arial", 30)

# 게임 루프
running = True
clock = pygame.time.Clock() # FPS 제어용

while running:
clock.tick(60) # 60 FPS로 게임 속도 조절

# 이벤트 처리
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

# 키 입력 받기
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_x > 0:
player_x -= speed # 왼쪽 경계 체크
if keys[pygame.K_RIGHT] and player_x < WIDTH - player_size:
player_x += speed # 오른쪽 경계 체크
if keys[pygame.K_UP] and player_y > 0:
player_y -= speed # 위쪽 경계 체크
if keys[pygame.K_DOWN] and player_y < HEIGHT - player_size:
player_y += speed # 아래쪽 경계 체크

# 충돌 감지 (목표물과 캐릭터)
player_rect = pygame.Rect(player_x, player_y, player_size, player_size)
target_rect = pygame.Rect(target_x, target_y, target_size, target_size)
if player_rect.colliderect(target_rect):
target_x = random.randint(0, WIDTH - target_size)
target_y = random.randint(0, HEIGHT - target_size)
score += 1

# 화면 그리기
screen.fill(WHITE)
pygame.draw.rect(screen, BLUE, (player_x, player_y, player_size, player_size)) # 캐릭터
pygame.draw.circle(screen, RED, (target_x + target_size // 2, target_y + target_size // 2), target_size // 2) # 목표물

# 점수 표시
score_text = font.render(f"Score: {score}", True, (0, 0, 0))
screen.blit(score_text, (10, 10))

pygame.display.update()

# 게임 종료
pygame.quit()

⬅️➡️⬆️⬇️ 방향키를 사용하면 파란색 캐릭터(사각형)가 움직이는 걸 확인할 수 있습니다.


간단한 게임 아이디어

이제 이 기능을 활용해서 간단한 게임을 만들어 볼 수 있습니다. 예를 들면:

  • 장애물을 피하며 캐릭터를 이동시키는 미로 게임
  • 공을 튕겨서 벽돌을 깨는 벽돌 깨기 게임
  • 목표 지점까지 캐릭터를 이동시키는 레이싱 게임

조금씩 기능을 추가하며 더 재미있는 게임을 만들어 보세요!


마무리

오늘은 Pygame을 사용한 기본 창 만들기와 캐릭터 이동에 대해 알아보았습니다. 다음 글에서는 충돌 감지, 점수 시스템, 그리고 간단한 게임 완성하기를 다뤄보겠습니다.

다음에는 어떤 게임을 만들어보고 싶나요? 댓글로 남겨주세요! 😃

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다