gpt4 book ai didi

python - 为什么Pygame只播放最后一个声音?

转载 作者:行者123 更新时间:2023-12-03 00:28:30 25 4
gpt4 key购买 nike

我得到了这段代码:

a_0 = pygame.mixer.sound("a.mp3",)
a = pygame.mixer.music

b_0 = pygame.mixer.music.load("b.mp3")
b = pygame.mixer.music

c_0 = pygame.mixer.music.load("c.mp3",)
c = pygame.mixer.music

d_0 = pygame.mixer.music.load("d.mp3")
d = pygame.mixer.music

e_0 = pygame.mixer.music.load("e.mp3",)
e = pygame.mixer.music

当我想使用以下声音播放 d (that emans d.mp3)时:
d.play()

它只会播放列表中的最后一个声音,这意味着 e.mp3而不是 d.mp3
我在这里做错了什么?

最佳答案

pygame.music.mixer.load()不返回任何内容。因此,您不能将其分配给变量。它加载到混音器中,并准备播放。 Documentation

您需要具有要播放的歌曲的列表或字典,然后每当要播放一首歌曲时,都需要将其加载到调音台中并进行播放:

def play_song(name):
pygame.mixer.music.load(name)
pygame.mixer.music.set_volume(0.3) # you can also set the volume
pygame.mixer.music.play(loops=-1)

这是专门针对 mixer.music的。
pygame.mixer.Sound返回一个Sound对象,您可以将其保存以供以后使用: documentation。因此,您可以将声音目录加载到python列表中。
sounds_list = []
sounds_list.append(pygame.mixer.Sound('gun_fire.wav'))
sounds_list.append(pygame.mixer.Sound('coin_pickup.wav'))
# add more sounds

关于python - 为什么Pygame只播放最后一个声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53770122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com