from tkinter import *
import pygame
class GameSound:
def __init__(self):
window = Tk() # 윈도우 생성
window.title("게임사운드") # 제목을 설정
window.geometry("640x480") # 윈도우 크기 설정
window.resizable(0,0)
self.canvas = Canvas(window, bg = "white")
self.canvas.pack(expand=True,fill=BOTH)
window.bind("<KeyPress>",self.keyPressHandler)
window.bind("<KeyRelease>",self.keyReleaseHandler)
#pygame 에서 music vs sound
# music: 배경음악 재생을 위해 사용
# sound: 효과음을 위해 사용
#BG sound.
pygame.init()
pygame.mixer.music.load("bgm.wav") #Loading File Into Mixer
pygame.mixer.music.play(-1) #Playing It In The Whole Device
self.canvas.create_text(320,400,font="Times 15 italic bold",text="Sound Example")
#Effect sound
self.sounds = pygame.mixer
self.sounds.init()
self.s_effect1 = self.sounds.Sound("gunsound.mp3")
while True:
#
window.after(33)
window.update()
def keyReleaseHandler(self, event):
if event.keycode in self.keys:
self.keys.remove(event.keycode)
def keyPressHandler(self, event):
self.s_effect1.play()
self.keys.add(event.keycode)
GameSound()
코드 설명
- pygame 모듈을 사용하기 위해 pygame을 import 한다.(line 2)
- pygame을 사용하기 위해서는 pygame.init()함수를 호출해야한다.(line 21)
- 위 코드에서 music.load(), music.play() 함수를 이용하여 배경음악을 무한반복 재생한다.(line 22, 23)
- effect sound를 위해 sounds 를 초기화 한다.(line 28)
- 이펙트 사운드 'gunsound.mp3' 파일을 읽고 sound 객체를 반환한다. sound 객체는 이펙트 사운드는 게임중 재생 및 멈춤을 컨트롤할 수 있다.
- line 41에서 이펙트 사운드를 재생한다.
위 코드만으로 간단히 게임에서 필요한 음악 재생은 가능하며 좀 더 다양한 기능을 구현하기 위해서는 아래의 링크를 참조하기 바랍니다.
https://www.pygame.org/docs/ref/music.html
https://www.pygame.org/docs/ref/mixer.html
'IT > 파이썬(Python)' 카테고리의 다른 글
파이썬 (python) 한국어 음성인식, (보이스 텍스트 변환) 예제 코드 (음성 -> 텍스트 변환, speech recognition, 오프라인 음성인식) (0) | 2024.05.24 |
---|---|
파이썬 대용량 파일 읽기 (메모리 매핑, 파일 디스크립터, 식별자, mmap, fileno) (0) | 2024.05.23 |
파이썬 프로세스 스레드 쓰레드 차이 예제 코드 treading multiprocessing GIL, 바이트코드 , I/O바운드 CPU 바운드 (0) | 2024.05.22 |
파이썬 스레드 (쓰레드, thread, threading) 병렬처리, 멀티스레드 예제 코드 (0) | 2024.05.22 |
파이썬 tkinter 마우스 이벤트 코드 예제, 이벤트 종류, bind 함수 설명, (0) | 2024.05.20 |