2025년 3월 12일 수요일

파이썬으로 만드는 조작 가능한 초급 액션 게임 - Pygame으로 배우는 실전 게임 개발



1. 파이썬 액션 게임 코드 (Pygame 기반)

아래는 pygame 라이브러리를 활용한 액션 게임 예제입니다. 플레이어가 버튼(키보드 입력)을 이용해 캐릭터를 움직이고 적을 회피하는 간단한 액션 메커니즘을 포함합니다.

코드:

import pygame

import random

# 초기화

pygame.init()

# 화면 설정

screen_width, screen_height = 800, 600

screen = pygame.display.set_mode((screen_width, screen_height))

pygame.display.set_caption("액션 게임")

clock = pygame.time.Clock()

# 색상

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

# 플레이어 설정

player_size = 50

player_pos = [screen_width // 2, screen_height - player_size * 2]

player_speed = 10

# 적 설정

enemy_size = 50

enemy_pos = [random.randint(0, screen_width - enemy_size), 0]

enemy_speed = 7

# 게임 루프

running = True

while running:

    screen.fill(WHITE)

    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_pos[0] > 0:

        player_pos[0] -= player_speed

    if keys[pygame.K_RIGHT] and player_pos[0] < screen_width - player_size:

        player_pos[0] += player_speed

    if keys[pygame.K_UP] and player_pos[1] > 0:

        player_pos[1] -= player_speed

    if keys[pygame.K_DOWN] and player_pos[1] < screen_height - player_size:

        player_pos[1] += player_speed

    # 적 이동

    enemy_pos[1] += enemy_speed

    if enemy_pos[1] > screen_height:

        enemy_pos[0] = random.randint(0, screen_width - enemy_size)

        enemy_pos[1] = 0

    # 충돌 처리

    if (enemy_pos[0] < player_pos[0] < enemy_pos[0] + enemy_size or enemy_pos[0] < player_pos[0] + player_size < enemy_pos[0] + enemy_size) and (enemy_pos[1] < player_pos[1] < enemy_pos[1] + enemy_size or enemy_pos[1] < player_pos[1] + player_size < enemy_pos[1] + enemy_size):

        print("Game Over")

        running = False

    # 화면 그리기

    pygame.draw.rect(screen, BLUE, (player_pos[0], player_pos[1], player_size, player_size))

    pygame.draw.rect(screen, RED, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size))

    pygame.display.flip()

    clock.tick(30)

pygame.quit()

파이썬은 간단한 코드로 복잡한 게임을 만들 수 있는 강력한 도구입니다. 특히 pygame 라이브러리를 활용하면 실제로 조작 가능한 액션 게임을 쉽고 빠르게 개발할 수 있습니다. 이 블로그에서는 초보자와 중급 개발자를 위한 고급스러운 액션 게임을 구현하며, 플레이어와 적의 움직임, 충돌 처리, 키보드 입력 등을 다룹니다.

주요 특징:

  • 플레이어 조작: 키보드를 사용해 실시간으로 캐릭터를 움직일 수 있음.

  • 적 생성 및 충돌 처리: 적을 생성하고, 충돌 시 게임 종료.

  • 버튼 설정 가능: 좌/우/상/하 방향키로 자유로운 이동.

 사용자가 예상할 수 있는 주요 오류 사항

코드를 실행하기 전에, 사용자가 자주 겪을 수 있는 문제와 해결 방법을 정리했습니다:

1. pygame 모듈 설치 오류

문제: "ModuleNotFoundError: No module named 'pygame'"

원인: pygame 라이브러리가 설치되지 않음.

해결 방법:

pip install pygame

2. 해상도 관련 충돌

문제: 창 크기(screen_width, screen_height)를 초과하는 값으로 캐릭터나 적을 배치했을 때.

해결 방법: 값 설정 시 화면 크기를 초과하지 않도록 제한.

3. 충돌 검사 오류

문제: 충돌 로직(if 조건)이 제대로 작동하지 않음.

원인: enemy_pos와 player_pos 좌표 계산 실수.

해결 방법: 항상 좌표와 크기 값을 정확히 확인하고 테스트할 것.

4. 프레임 속도 관련 렉

문제: clock.tick(30)을 조정하지 않으면 게임이 너무 빠르거나 느리게 작동.

해결 방법: 적절한 FPS 값을 설정(권장: 30~60).

댓글 없음:

댓글 쓰기

Recommended Posts

Love is taking responsibility till the end

  I created a campaign called "Don't Abandon Your Beloved Dog" with Stable Diffusion. I tried creating it several times, but i...