游戏哪能没有音效?这节我们研究下如何加背景音乐,其实也很简单:
# 加载背景音乐
pygame.mixer.music.load(music_base_path + "music.mp3")
# 设置音量
pygame.mixer.music.set_volume(0.1)
# 循环播放
pygame.mixer.music.play(-1, 0)
play的第1个参数,设置成-1表示循环播放。
另一个问题,发射子弹和子弹击中,也需要声音,这个必须用另一种方法,否则的话,会把背景音乐给停掉:
_sound_library = {} # 播放音效(与背景音乐可同时播放,但默认只支持wav格式)
def play_sound(path):
global _sound_library
sound = _sound_library.get(path)
if sound is None:
temp = path.replace('/', os.sep).replace('\\', os.sep)
sound = pygame.mixer.Sound(temp)
sound.set_volume(0.1)
_sound_library[path] = sound
sound.play()
封装一个函数,在需要播放音效的地方,调用即可:
# 播放音效
play_sound(music_base_path + "hit.wav")
参考:
https://nerdparadise.com/programming/pygame/part3