본문 바로가기
프로그래밍

파이썬을 이용한 장애물 피하기 게임 만들기

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

 

 

Python으로 장애물 피하기 게임 만들기

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

1. Pygame 설치

Python으로 장애물 피하기 게임을 개발하려면 Pygame 라이브러리를 설치하세요:

pip install pygame
        

2. 기본 게임 창 설정

게임 화면을 생성하고 설정합니다.

import pygame
import sys

pygame.init()

# 화면 설정
screen_width = 600
screen_height = 400
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((135, 206, 250))  # 하늘색 배경
    pygame.display.flip()

pygame.quit()
sys.exit()
        

3. 플레이어 추가

플레이어 캐릭터를 화면에 추가합니다.

player_color = (255, 255, 0)  # 노란색
player_size = 30
player_x = screen_width // 2 - player_size // 2
player_y = screen_height - player_size - 10
player_speed = 5
        

4. 장애물 추가

랜덤 위치에서 생성되는 장애물을 추가합니다.

import random

obstacle_color = (255, 0, 0)  # 빨간색
obstacle_size = 30
obstacle_x = random.randint(0, screen_width - obstacle_size)
obstacle_y = 0
obstacle_speed = 4
        

5. 플레이어 이동과 충돌 감지

키보드로 플레이어를 움직이고 장애물과 충돌하면 게임을 종료합니다.

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_x > 0:
    player_x -= player_speed
if keys[pygame.K_RIGHT] and player_x < screen_width - player_size:
    player_x += player_speed

player_rect = pygame.Rect(player_x, player_y, player_size, player_size)
obstacle_rect = pygame.Rect(obstacle_x, obstacle_y, obstacle_size, obstacle_size)

if player_rect.colliderect(obstacle_rect):
    print("게임 종료!")
    running = False
        

6. 전체 코드

위의 코드를 통합한 완성된 장애물 피하기 게임 코드입니다. 복사하여 실행해 보세요!

import pygame
import sys
import random

pygame.init()

# 화면 설정
screen_width = 600
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("장애물 피하기 게임")

# 색상 및 설정
background_color = (135, 206, 250)
player_color = (255, 255, 0)
player_size = 30
player_x = screen_width // 2 - player_size // 2
player_y = screen_height - player_size - 10
player_speed = 5

obstacle_color = (255, 0, 0)
obstacle_size = 30
obstacle_x = random.randint(0, screen_width - obstacle_size)
obstacle_y = 0
obstacle_speed = 4

running = True
while running:
    pygame.time.delay(30)
    
    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 -= player_speed
    if keys[pygame.K_RIGHT] and player_x < screen_width - player_size:
        player_x += player_speed

    # 장애물 이동
    obstacle_y += obstacle_speed
    if obstacle_y > screen_height:
        obstacle_y = 0
        obstacle_x = random.randint(0, screen_width - obstacle_size)

    # 충돌 감지
    player_rect = pygame.Rect(player_x, player_y, player_size, player_size)
    obstacle_rect = pygame.Rect(obstacle_x, obstacle_y, obstacle_size, obstacle_size)
    if player_rect.colliderect(obstacle_rect):
        print("게임 종료!")
        running = False

    # 화면 그리기
    screen.fill(background_color)
    pygame.draw.rect(screen, player_color, (player_x, player_y, player_size, player_size))
    pygame.draw.rect(screen, obstacle_color, (obstacle_x, obstacle_y, obstacle_size, obstacle_size))
    pygame.display.flip()

pygame.quit()
sys.exit()
728x90
반응형