파이썬으로 만드는 나만의 게임 개발 강좌 8강 – 시작 화면과 게임 오버 화면 만들기

파이썬으로 만드는 나만의 게임 개발 강좌 8강입니다!

이번 강의에서는 게임을 조금 더 완성도 있게 만들어주는 **시작 화면**과 **게임 종료 화면(UI)** 을 구현해봅니다. 이 기능은 사용자 경험(UX)을 크게 향상시키는 요소로, 실제 게임처럼 보이게 만들 수 있습니다.

이번 강의 목표

  • 게임 시작 전 타이틀 화면 만들기
  • 사용자 입력에 따라 게임 시작
  • 게임 종료 후 ‘Game Over’ 화면 표시

1. 시작 화면 구현

시작 화면에서는 배경 이미지나 제목 텍스트를 띄우고, 키보드 입력(예: Enter 키)을 기다립니다.

def show_start_screen():
    screen.fill((0, 0, 0))
    title_font = pygame.font.Font(None, 70)
    msg_font = pygame.font.Font(None, 40)

    title = title_font.render("나만의 게임", True, (255, 255, 255))
    msg = msg_font.render("Enter 키를 눌러 시작합니다", True, (255, 255, 255))

    screen.blit(title, (screen_width/2 - title.get_width()/2, 200))
    screen.blit(msg, (screen_width/2 - msg.get_width()/2, 300))
    pygame.display.update()

    waiting = True
    while waiting:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                exit()
            if event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN:
                waiting = False

2. 게임 오버 화면 구현

게임이 끝난 뒤 사용자에게 “Game Over” 메시지를 보여주는 화면을 만들어보겠습니다. 아래는 함수 예시입니다.

def show_game_over():
    screen.fill((0, 0, 0))
    font = pygame.font.Font(None, 70)
    text = font.render("Game Over", True, (255, 0, 0))
    screen.blit(text, (screen_width/2 - text.get_width()/2, screen_height/2))
    pygame.display.update()
    pygame.time.delay(2000)

이렇게 하면 게임이 끝나고 2초간 ‘Game Over’ 화면을 보여준 후 자동 종료됩니다.


3. 전체 흐름 조합

게임 실행 전 시작 화면을 보여주고, 게임 종료 후 게임 오버 화면을 띄우려면 다음과 같이 구성할 수 있습니다.

import pygame
pygame.init()

screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("시작과 종료 화면")

# 시작 화면 호출
show_start_screen()

# (게임 실행 코드 - 예: while running 루프 등)
# 게임 실행 중 종료 조건 발생하면 아래 코드 실행

# 게임 오버 화면 호출
show_game_over()
pygame.quit()

이제 게임을 실행하면 먼저 시작 화면이 나타나고, Enter 키를 누르면 본 게임이 시작됩니다. 게임 종료 시에는 게임 오버 화면을 보여주며 마무리됩니다.


4. 확장 아이디어

  • 시작 화면에 게임 설명 또는 조작법 안내 추가
  • 게임 오버 화면에 점수 출력
  • 타이틀 화면에 배경 음악 추가
  • 재시작 기능 (R 키를 누르면 다시 시작 등)

5. 다음 강의 예고

9강: 게임 난이도 조절 – 속도, 장애물 개수, 아이템 확률 조정
다음 시간에는 게임을 좀 더 어렵게 혹은 쉽게 만들어주는 난이도 조절 기능을 추가해보겠습니다. 속도 증가, 아이템 희귀도 조절 등 다양한 방식으로 게임을 더욱 다채롭게 구성할 수 있습니다!

이 강의는 파이썬과 Pygame을 활용한 게임 개발 입문 시리즈입니다. 기초부터 실제 게임 제작까지 차근차근 따라오세요!