3

我正在使用 Pygame 制作游戏,我想做的是为每个级别设置一个主要声音,并在收集点时听到一些默认声音(例如)

因此,我使用以下方法加载主关卡音乐:

pygame.mixer.music.load(music_file)
pygame.mixer.music.play(-1)

现在,我想做的是每当玩家获得积分时播放特定的声音。我无法使用以下方法停止音乐:

pygame.mixer.music.stop()
pygame.mixer.music.load(point_music)
pygame.mixer.music.play()

因为关卡的音乐将停止播放。

所以,我试过做这样的事情:

points_sound = pygame.mixer.Sound("point.mp3")
points_sound.play()

我知道在 pygame 中播放的声音在它自己的线程上运行,但我确信程序/游戏在完成播放声音之前不会终止。

长话短说:玩家可以收集积分,但我无法让 pygame 播放收集积分的声音。

4

2 回答 2

3

正如sr2222在评论中所说:

文档说 mp3 支持仅限于音乐,并且声音仅支持 OGG 和 WAV。您是否尝试过官方支持的格式之一?

尝试为您的声音使用 OGG 或 WAV 格式,这应该可以。

于 2012-12-17T01:36:11.943 回答
1

points_sound.play() 应该返回一个通道对象。该对象是播放声音所必需的。

points_channel = points_sound.play()

这对我自己的情况有所帮助。

于 2014-02-25T18:40:59.420 回答