[python] Pygame으로 게임 메뉴 만들기

Pygame은 파이썬으로 게임을 만들기 위한 모듈입니다. 이번 포스트에서는 Pygame을 사용하여 게임의 메뉴를 만드는 방법에 대해 알아보겠습니다.

1. Pygame 설치하기

먼저, Pygame을 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 Pygame을 설치할 수 있습니다.

$ pip install pygame

2. 게임 초기화하기

게임을 시작하기 전에 Pygame을 초기화해야 합니다. 다음 코드를 작성하여 게임을 초기화하세요.

import pygame
import sys

pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("게임 메뉴")
clock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    
    pygame.display.update()
    clock.tick(60)

위의 코드는 Pygame을 초기화하고 게임 창을 생성하는 기본적인 코드입니다. 게임 창의 크기는 (800, 600)으로 설정되어 있습니다. 이 코드는 무한 루프를 실행하며 게임 창을 업데이트하는 동안 사용자의 이벤트를 체크합니다.

3. 메뉴 화면 만들기

이제 메뉴 화면을 만들어 보겠습니다. 다음 코드를 while True 루프 안에 추가하세요.

menu_font = pygame.font.Font(None, 36)
title_text = menu_font.render("게임 메뉴", True, (255, 255, 255))
start_text = menu_font.render("시작", True, (255, 255, 255))
quit_text = menu_font.render("종료", True, (255, 255, 255))

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    
    screen.fill((0, 0, 0))
    screen.blit(title_text, (350, 200))
    screen.blit(start_text, (380, 300))
    screen.blit(quit_text, (390, 350))
    
    pygame.display.update()
    clock.tick(60)

위의 코드는 메뉴 화면에 “게임 메뉴”, “시작” 및 “종료” 라는 텍스트를 출력합니다. 각각의 텍스트는 pygame.font 모듈을 사용하여 생성되었습니다.

4. 메뉴 선택 기능 추가하기

메뉴 선택 기능을 추가하여 사용자가 메뉴 항목을 선택할 수 있도록 만들어 보겠습니다. 다음 코드를 while True 루프 안에 추가하세요.

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_pos = pygame.mouse.get_pos()
            if start_text.get_rect(x=380, y=300).collidepoint(mouse_pos):
                print("시작 메뉴 선택됨")
            elif quit_text.get_rect(x=390, y=350).collidepoint(mouse_pos):
                pygame.quit()
                sys.exit()
    
    screen.fill((0, 0, 0))
    screen.blit(title_text, (350, 200))
    screen.blit(start_text, (380, 300))
    screen.blit(quit_text, (390, 350))
    
    pygame.display.update()
    clock.tick(60)

위의 코드는 사용자가 마우스를 클릭할 때 선택한 메뉴 항목을 확인하는 기능을 추가합니다. 마우스 클릭 위치를 가져온 후, collidepoint() 메서드를 사용하여 텍스트의 영역과 충돌하는지 확인합니다.

이제 Pygame을 사용하여 게임 메뉴를 만들 수 있습니다. 이를 기반으로 원하는 내용으로 꾸며보세요. Pygame에 대한 자세한 내용은 공식 문서를 참조하세요.