안녕하세요! 가족과 함께하는 스마트 라이프입니다. 드디어 파이썬 게임 학교의 마지막 날이 밝았습니다! 어제까지 만든 게임도 멋졌지만, 무언가 허전하지 않으셨나요? 바로 귀를 즐겁게 해줄 ‘소리’가 빠졌기 때문이에요. 오늘은 배경음악과 효과음을 넣어, 누구나 즐길 수 있는 진짜 게임을 완성해볼 거예요!

1. 게임의 분위기를 만드는 ‘사운드’ 마법
영화나 게임에서 소리가 없다면 정말 심심하겠죠? Pygame에는 소리를 다루는 두 가지 핵심 방법이 있어요. 배경에 계속 깔리는 ‘음악(Music)’과 아이템을 먹을 때 짧게 들리는 ‘효과음(Sound)’이죠. 이 두 가지만 있으면 여러분의 게임은 순식간에 오락실 게임처럼 변신한답니다!
2. 소리 마법사의 필수 주문
완성도 높은 게임을 위해 필요한 마지막 주문들을 배워봐요.
- pygame.mixer.music.load(): 게임 내내 흘러나올 배경음악 파일을 불러와요.
- music.play(-1): 음악을 무한 반복해서 들려줘요.
- pygame.mixer.Sound(): 닿았을 때 들리는 짧은 효과음을 준비해요.
- sound.play(): 원할 때 바로 효과음을 짠! 하고 터뜨려요.
3. 실전 연습: 소리 나는 종합 게임 완성하기
import pygame
import random
# 1. 게임 및 소리 초기화
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("파이썬 마법 학교: 최종 게임")
clock = pygame.time.Clock()
# 2. 소리 설정 (실제 파일이 폴더에 있어야 해요!)
# pygame.mixer.music.load("bgm.mp3") # 배경음악
# catch_sound = pygame.mixer.Sound("ding.wav") # 효과음
# pygame.mixer.music.play(-1)
# 3. 게임 요소 설정
player = pygame.Rect(400, 300, 50, 50)
item = pygame.Rect(random.randint(0, 750), random.randint(0, 550), 30, 30)
score = 0
game_font = pygame.font.SysFont("malgungothic", 40)
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] and player.left > 0: player.x -= 7
if keys[pygame.K_RIGHT] and player.right < 800: player.x += 7
if keys[pygame.K_UP] and player.top > 0: player.y -= 7
if keys[pygame.K_DOWN] and player.bottom < 600: player.y += 7
# 충돌 감지 및 효과음 재생
if player.colliderect(item):
score += 1
# catch_sound.play() # 아이템 먹을 때 띵!
item.x = random.randint(10, 740)
item.y = random.randint(10, 540)
# 화면 그리기
screen.fill((50, 50, 150)) # 깊은 바다색 배경
pygame.draw.rect(screen, (255, 200, 0), player) # 노란색 주인공
pygame.draw.ellipse(screen, (255, 255, 255), item) # 하얀색 진주 아이템
# 전광판 표시
text = game_font.render(f"Score: {score}", True, (255, 255, 255))
screen.blit(text, (20, 20))
pygame.display.update()
clock.tick(60)
pygame.quit()

4. 진정한 게임 거장으로 거듭나기!
우리의 최종 게임을 더 완벽하게 다듬어볼까요?
- 배경 이미지 넣기:
screen.fill대신pygame.image.load를 사용해 우주나 숲속 배경 사진을 깔아보세요. - 난이도 조절: 점수가 올라갈수록
clock.tick숫자를 높여서 게임 속도를 점점 빠르게 만들어보세요. - 다양한 아이템: 먹으면 속도가 빨라지는 '번개 아이템'이나 점수가 2배가 되는 '황금 아이템'을 추가해보세요.
5. 가족과 함께하는 ‘우리 집 게임 발표회’
아이와 함께 직접 만든 게임의 엔딩 화면을 꾸며보세요. “최종 점수가 50점이 넘으면 '우리 딸은 코딩 천재!'라는 문구가 나오게 해볼까?”라고 제안하는 거죠. 아이가 직접 코드의 여러 수치를 바꿔보며 ‘작은 변화가 게임의 재미를 어떻게 바꾸는지’ 기획자의 시각을 갖게 해주세요. 특히 EduPad 프로젝트에서 아이들이 학습 미션을 완료할 때마다 축하 음악과 함께 화려한 효과가 나오는 ‘성취감 시스템’의 최종 모델로 활용하기에 정말 완벽한 예제입니다.
마치며: 여러분의 상상은 이제 현실이 됩니다!
챌린지의 70번째 미션까지 모두 완료하신 여러분, 진심으로 축하드립니다! 이번 한 주 동안 게임의 뼈대부터 소리라는 영혼까지 불어넣으며 훌륭한 게임 개발자로 성장하셨어요. 주말 동안 여러분만의 '인생 게임'을 더 멋지게 완성해 보시길 바랍니다. 다음 주 월요일 오전 9시에는 또 다른 흥미진진한 파이썬 모험으로 여러분을 찾아올게요!


