프로그래밍

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

코드금융 2025. 1. 6. 11:41
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
반응형