ai-creator

[파이썬 간단한 게임 만들기] 부록1. 배경음/효과음 재생 본문

유치한 게임

[파이썬 간단한 게임 만들기] 부록1. 배경음/효과음 재생

ai-creator 2021. 5. 8. 13:42
반응형

pygame에서는 mixer에서 음악기능을 담당합니다.

이를 이용해서 배경음, 효과음을 내보아요.

1. mixer 사용법 

사용법은 너무 간단합니다. mixer에는 sound, streaming 방법을 지원하고 있고 여기에서는 sound만 다뤄보겠습니다.

sound의 경우는 지원하는 확장자가 있습니다. wav / ogg / wma  만 되고, mp3 안된답니다.

관련 합수는 아주 간단해요. 아래와 같습니다.

pygame.mixer.Sound( filename ) 음악 파일 설정 및 객체 생성
play(loops=0, maxtime=0, fade_ms=0) 재생
** play(-1) : 무한 반복
stop()  
get_volume() 현재 볼륨값 확인
set_voume(float) 볼륨 설정
fadeout(time) 점점 작게 재생하면서 정지

 

마치 음악파일을 읽어서 재생한다고 생각하면, 딱 2개의 함수만 필요한거죠.

이렇게 말이죠.

sound = pygame.mixer.Sound( "sounds/gameover.wav" )
sound.play()

 

2. 예제

작은 게임판을 만들어서 재생이미지를 넣고, 해당 이미지를 클릭하면 준비해놓은 음악을 재생해보도록 합시다.

 

마우스로 이미지를 클릭했다!는건 어떻게 알 수 있죠?

벌레잡기게임(Link)에서 배운 colliderpoint()를 사용하면 쉽게 할 수 있죠?

 

참고) 사용하는 소리, 이미지 파일은 하단 링크에서 다운로드 받으세요.

drive.google.com/drive/u/0/folders/1P7-ibtlJKUEet1lbqkSAg7N8RyxOza_o

 

ai-creator 공유폴더(유치한게임) - Google Drive

이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요.

drive.google.com

import pygame
import random
import time

pygame.init() 

BLACK = (0, 0, 0)
screen_width = 200
screen_height = 200
screen = pygame.display.set_mode((screen_width, screen_height)) 

done = False
clock = pygame.time.Clock() 

def runGame():
    global done

    ## 이미지
    sound_image = pygame.image.load('sound_on.png')
    sound_image = pygame.transform.scale(sound_image, (60, 60))
    sound_rect = pygame.Rect(sound_image.get_rect())
    sound_rect.left = (screen_width - 60)/2 
    sound_rect.top = 10

    ## 사운드
    sound = pygame.mixer.Sound( "gameover.wav" )
    is_play = 0

    while not done: 
        clock.tick(30)
        screen.fill(BLACK) 

        for event in pygame.event.get():
            if event.type == pygame.QUIT: # [X] 종료키가 누르면, 게임 종료
                done=True
            elif event.type == pygame.MOUSEBUTTONDOWN:
                print(event.pos[0], event.pos[1])
                if sound_rect.collidepoint(event.pos) == True:
                    is_play = 1
                

        screen.blit(sound_image, sound_rect)

        if is_play == 1:
            print("play....")
            is_play = 0
            sound.play()

        pygame.display.update()

runGame()
pygame.quit()

 

너무 간단하죠?

 

게임을 하면, 음악이 한층 흥을 돋구자나요~

재미난 음악들을 추가하여 흥미로운 게임을 만들어보세요~

 

 

ㅁ 참고

- 무료 사운드 다운로드 사이트 : wikidocs.net/65966

 

** 음악과 이미지는 아래 링크에서 다운 받았습니다.

github.com/w-j-h/snake-game/tree/b34f321947c8e49fb58865563654a2fe8a6747a4

반응형
Comments