[python] 파이썬에서 키보드 이벤트를 이용한 게임 개발하기

이번에는 파이썬을 사용하여 키보드 이벤트를 이용한 간단한 게임을 만들어보겠습니다. 이 게임은 플레이어가 키보드의 방향키를 사용하여 움직이는 캐릭터를 조종하고, 장애물을 피해 코인을 수집하는 것을 목표로 합니다.

필요한 라이브러리 설치하기

이 프로젝트에서는 pygame 라이브러리를 사용하므로, 먼저 pygame을 설치해야 합니다. 아래의 명령을 터미널에 입력하여 pygame을 설치해주세요.

pip install pygame

게임 화면 생성하기

파이썬으로 게임을 개발하기 위해서는 먼저 게임 화면을 생성해야 합니다. 다음 코드를 사용하여 800x600 크기의 게임 화면을 생성해봅시다.

import pygame

# 게임 화면 초기화
pygame.init()
screen = pygame.display.set_mode((800, 600))
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 라이브러리를 불러온 후, 게임 화면의 크기를 800x600으로 설정하고, 캡션을 “키보드 이벤트 게임”으로 설정합니다. 그 다음, while 루프를 사용하여 게임을 실행하고, pygame.event.get() 메서드를 사용하여 발생한 이벤트를 처리합니다. 만약 이벤트의 타입이 pygame.QUIT이라면 running 변수를 False로 설정하여 게임을 종료합니다. 마지막으로 pygame.display.update() 메서드를 사용하여 화면을 업데이트합니다.

캐릭터 이동하기

이제 플레이어가 움직이는 캐릭터를 추가해보겠습니다. 아래의 코드를 게임 루프 안에 추가해주세요.

# 캐릭터 이미지 불러오기
player_image = pygame.image.load("player.png")
player_rect = player_image.get_rect()
player_rect.center = (400, 300)

# 캐릭터 이동 속도 설정
player_speed = 5

# 키보드 이벤트 처리
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    player_rect.x -= player_speed
if keys[pygame.K_RIGHT]:
    player_rect.x += player_speed
if keys[pygame.K_UP]:
    player_rect.y -= player_speed
if keys[pygame.K_DOWN]:
    player_rect.y += player_speed

# 캐릭터 화면에 그리기
screen.blit(player_image, player_rect)

위의 코드에서는 player_image 변수에 캐릭터 이미지를 불러오고, player_rect 변수에 이미지의 사각형 영역을 가져옵니다. 그리고 player_rect의 중심을 (400, 300)으로 설정하여 캐릭터를 화면 가운데에 위치시킵니다. 그 다음 player_speed 변수를 설정하여 캐릭터의 이동 속도를 조절할 수 있습니다.

pygame.key.get_pressed() 메서드를 사용하여 현재 눌려있는 키를 확인하고, 방향키에 해당하는 키가 눌려있다면 player_rect의 x 또는 y 좌표를 변경하여 캐릭터를 움직입니다.

마지막으로 screen.blit() 메서드를 사용하여 캐릭터 이미지를 화면에 그립니다.

게임 시작점 설정하기

이제 게임을 시작할 때 플레이어가 특정 위치에서 게임을 시작할 수 있도록 설정해보겠습니다. 아래의 코드를 게임 루프 위로 추가해주세요.

# 게임 시작점 설정
start_x = 400
start_y = 300
player_rect.x = start_x
player_rect.y = start_y

위의 코드에서는 start_xstart_y 변수를 사용하여 플레이어가 시작할 위치를 지정합니다. 그리고 player_rect.xplayer_rect.y를 사용하여 플레이어의 좌표를 시작 위치로 설정합니다.

게임 실행하기

이제 모든 코드를 통합하여 게임을 실행해보세요. 캐릭터를 움직이고, 게임을 종료해보는 등의 동작을 확인할 수 있을 것입니다.

import pygame

# 게임 화면 초기화
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("키보드 이벤트 게임")

# 캐릭터 이미지 불러오기
player_image = pygame.image.load("player.png")
player_rect = player_image.get_rect()
player_rect.center = (400, 300)

# 캐릭터 이동 속도 설정
player_speed = 5

# 게임 시작점 설정
start_x = 400
start_y = 300
player_rect.x = start_x
player_rect.y = start_y

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

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player_rect.x -= player_speed
    if keys[pygame.K_RIGHT]:
        player_rect.x += player_speed
    if keys[pygame.K_UP]:
        player_rect.y -= player_speed
    if keys[pygame.K_DOWN]:
        player_rect.y += player_speed

    screen.blit(player_image, player_rect)
    pygame.display.update()

# 게임 종료
pygame.quit()

결론

이번에는 파이썬을 사용하여 키보드 이벤트를 이용한 간단한 게임을 개발해보았습니다. pygame 라이브러리를 활용하여 게임 화면을 생성하고, 플레이어 캐릭터를 조작하는 방법을 살펴보았습니다. 이를 활용하여 더 복잡한 게임을 개발할 수 있으며, 게임 개발에 흥미를 가진 사람들에게 도움이 될 것입니다.