如何在 python pygame 项目结束时播放音频?

How can I play audio at the end of my python pygame project?

我创建了一个连连四的游戏,并使用 pygame.mixer.Sound.play 播放一个简短的 .mp3 文件实现了掉落筹码的音效。

但是,一旦游戏结束,我就无法播放我想使用的 .mp3 文件。 pygame 屏幕关闭,程序成功退出。

我的 main.py 有一个“while not game_over”循环。我试图在该循环退出并且玩家获胜后播放这首歌,但没有成功,我还尝试使用 sleep 来阻止程序退出但也失败了。我想将播放音乐的命令放入我的 winCheck 函数中,如下所示,但正如我之前所说,程序刚刚退出并且歌曲没有播放。

任何帮助将不胜感激,我将其添加到 winCheck 函数的尝试如下所示:

if count >= 4:
    win = pygame.mixer.Sound("sounds/win.mp3")
    pygame.mixer.Sound.play(win)
    return True

您必须等待音乐播放完毕:

win = pygame.mixer.Sound("sounds/win.mp3")
win.play()
while pygame.mixer.get_busy():
    pygame.time.delay(10)
    pygame.event.poll()

尝试添加 time.sleep 或使用 pygame.mixer.get_busy() 等待您的 Sound/Music 播放完毕。我的选择是这样的:while pygame.mixer.get_busy() == 1: time.sleep(1)