본문 바로가기
프로그래밍

파이썬을 이용한 벽돌 부수기 게임 만들기

by 코드금융 2025. 1. 5.
728x90
반응형

 

 

Python으로 벽돌깨기 게임 만들기

Pygame을 활용한 단계별 튜토리얼

1. Pygame 설치

먼저 Pygame 라이브러리를 설치합니다. 터미널에서 아래 명령어를 실행하세요:

pip install pygame
        

2. 기본 게임 창 만들기

게임 화면을 설정하는 기본 코드입니다. Pygame을 초기화하고 게임 창을 만듭니다.

import pygame
import sys

# Pygame 초기화
pygame.init()

# 화면 설정
screen_width = 800
screen_height = 600
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((0, 0, 0))  # 배경색
    pygame.display.flip()  # 화면 업데이트

pygame.quit()
sys.exit()
        

3. 공과 패들 추가

게임에서 공과 패들을 화면에 추가합니다. 아래 코드를 참고하세요.

# 공 초기화
ball_color = (255, 255, 0)
ball_radius = 10
ball_x, ball_y = screen_width // 2, screen_height // 2
ball_dx, ball_dy = 4, -4  # 공의 이동 속도

# 패들 초기화
paddle_color = (0, 255, 0)
paddle_width = 100
paddle_height = 10
paddle_x = (screen_width - paddle_width) // 2
paddle_y = screen_height - 30
paddle_speed = 8

# 공 및 패들 그리기
pygame.draw.circle(screen, ball_color, (ball_x, ball_y), ball_radius)
pygame.draw.rect(screen, paddle_color, (paddle_x, paddle_y, paddle_width, paddle_height))
        

4. 벽돌 생성

벽돌을 행렬 형태로 생성하고 표시합니다.

# 벽돌 초기화
brick_rows = 5
brick_cols = 10
brick_width = 60
brick_height = 20
brick_padding = 10
brick_offset_x = 35
brick_offset_y = 50
bricks = []

for row in range(brick_rows):
    for col in range(brick_cols):
        brick_x = brick_offset_x + col * (brick_width + brick_padding)
        brick_y = brick_offset_y + row * (brick_height + brick_padding)
        bricks.append(pygame.Rect(brick_x, brick_y, brick_width, brick_height))

# 벽돌 그리기
for brick in bricks:
    pygame.draw.rect(screen, (255, 0, 0), brick)
        

5. 충돌 감지

공이 패들, 벽돌, 화면 경계에 충돌했을 때의 동작을 구현합니다.

# 공과 패들 충돌
if paddle_x < ball_x < paddle_x + paddle_width and paddle_y < ball_y + ball_radius < paddle_y + paddle_height:
    ball_dy *= -1

# 공과 벽돌 충돌
for brick in bricks:
    if brick.collidepoint(ball_x, ball_y):
        bricks.remove(brick)
        ball_dy *= -1
        break

# 공의 화면 경계 충돌
if ball_x - ball_radius <= 0 or ball_x + ball_radius >= screen_width:
    ball_dx *= -1
if ball_y - ball_radius <= 0:
    ball_dy *= -1
        

6. 전체 코드 통합

위 코드를 조합하여 벽돌깨기 게임의 전체 구조를 완성합니다. 단계적으로 추가적인 기능(점수, 난이도 등)을 구현하며 게임을 확장할 수 있습니다.

결론

Python과 Pygame으로 간단한 벽돌깨기 게임을 만들어 보았습니다. 이를 기반으로 추가적인 기능(레벨, 아이템 등)을 더하며 더욱 재미있는 게임을 만들어 보세요!

728x90
반응형