일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자동화
- 카카오
- Python
- 크롤링
- 기본기
- 업무자동화
- 파이썬간단한게임
- 구글캘린더
- 머신러닝
- 딥러닝
- 오늘배워오늘쓰는
- 파이썬
- OpenAPI
- Quickstart
- 독학
- 구글
- 웹크롤링
- 빅데이터
- 인공지능
- 구글일정
- Ai
- 소스코드
- kakao
- Selenium
- 파이썬독학
- 파이썬게임만들기
- 음성인식
- 파이썬게임
- 간단한파이썬게임
- STT
Archives
- Today
- Total
ai-creator
[파이썬 간단한 게임 만들기] 부록1. 배경음/효과음 재생 본문
반응형
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
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
반응형
'유치한 게임' 카테고리의 다른 글
[파이썬 간단한 게임 만들기] 8. 지뢰찾기 (2) | 2021.05.08 |
---|---|
[파이썬 간단한 게임 만들기] 7. 벽돌 부수기 (4) | 2021.05.08 |
[파이썬 간단한 게임 만들기] 6. 날아가는 벌레잡기 (1) | 2021.04.03 |
[파이썬 간단한 게임 만들기] 5. 핑퐁(Ping-Pong) (0) | 2021.04.03 |
[파이썬 간단한 게임 만들기] 4. 폭탄 피하기 (1) | 2021.04.03 |
Comments