프로그래밍

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

코드금융 2025. 1. 5. 23:12
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
반응형