파이썬으로 만드는 나만의 게임 개발 강좌 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을 활용한 게임 개발 입문 시리즈입니다. 기초부터 실제 게임 제작까지 차근차근 따라오세요!