[python] Pygame에서 실시간 경주 게임 구현하기

이번 포스트에서는 Python의 게임 개발 라이브러리인 Pygame을 사용하여 실시간 경주 게임을 구현하는 방법을 알아보겠습니다. Pygame은 게임 개발에 필요한 기능들을 제공하여 쉽게 게임을 만들 수 있도록 도와줍니다.

필요한 패키지 설치하기

먼저, Pygame을 사용하기 위해 다음과 같이 필요한 패키지를 설치해야 합니다.

pip install pygame

게임 화면 구성하기

게임을 시작하기 전에 Pygame 윈도우를 생성하고 게임 화면을 구성해야 합니다. 다음의 코드를 입력하여 게임 화면을 구성해봅시다.

import pygame

# 화면 크기 설정
screen_width = 640
screen_height = 480
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

    # 화면 업데이트
    pygame.display.update()

# 게임 종료
pygame.quit()

위의 코드에서는 Pygame에서 제공하는 pygame.display.set_mode() 함수를 사용하여 게임 화면을 생성하고, pygame.display.set_caption() 함수를 사용하여 게임의 타이틀을 설정합니다. 그리고 게임 루프를 통해 게임 화면이 유지되도록 합니다.

자동차 객체 생성하기

이제 자동차 객체를 생성하여 게임 화면에 표시해보겠습니다. 다음의 코드를 입력해봅시다.

import pygame

# 화면 크기 설정
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))

# 게임 화면 타이틀 설정
pygame.display.set_caption("실시간 경주 게임")

# 자동차 객체 생성
car_image = pygame.image.load("car.png")
car_size = car_image.get_rect().size
car_width = car_size[0]
car_height = car_size[1]
car_x = (screen_width / 2) - (car_width / 2)
car_y = screen_height - car_height

# 게임 루프
running = True
while running:
    # 이벤트 처리
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 화면 배경색 설정
    screen.fill((120, 120, 120))

    # 자동차 화면에 표시
    screen.blit(car_image, (car_x, car_y))

    # 화면 업데이트
    pygame.display.update()

# 게임 종료
pygame.quit()

위의 코드에서는 pygame.image.load() 함수를 사용하여 자동차 이미지를 로드하고, get_rect().size 메소드를 통해 자동차 이미지의 크기를 구합니다. 그리고 자동차의 초기 위치인 car_xcar_y를 설정하여 게임 화면에 자동차를 표시합니다.

키 입력 처리하기

자동차를 움직일 수 있도록 키 입력을 처리하는 기능을 추가해보겠습니다. 다음의 코드를 입력해봅시다.

import pygame

# 화면 크기 설정
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))

# 게임 화면 타이틀 설정
pygame.display.set_caption("실시간 경주 게임")

# 자동차 객체 생성
car_image = pygame.image.load("car.png")
car_size = car_image.get_rect().size
car_width = car_size[0]
car_height = car_size[1]
car_x = (screen_width / 2) - (car_width / 2)
car_y = screen_height - car_height

# 자동차 이동 속도
car_speed = 5

# 게임 루프
running = True
while running:
    # 이벤트 처리
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        
        # 키 입력 처리
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                car_x -= car_speed
            if event.key == pygame.K_RIGHT:
                car_x += car_speed

    # 화면 배경색 설정
    screen.fill((120, 120, 120))

    # 자동차 화면에 표시
    screen.blit(car_image, (car_x, car_y))

    # 화면 업데이트
    pygame.display.update()

# 게임 종료
pygame.quit()

위의 코드에서는 키 입력 처리를 위해 pygame.KEYDOWN 이벤트를 추가하였습니다. 사용자가 왼쪽 화살표를 누르면 자동차의 x 좌표를 왼쪽으로 이동시키고, 오른쪽 화살표를 누르면 자동차의 x 좌표를 오른쪽으로 이동시킵니다.

결론

위의 코드를 실행시켜보면 Pygame을 사용하여 실시간 경주 게임을 구현할 수 있음을 확인할 수 있습니다. Pygame을 활용하면 더 다양한 기능을 추가하여 원하는 게임을 만들 수 있으니 새로운 프로젝트에 도전해보세요!