我有以下pygame代码,但它通常适用于python
expl_sounds = []
for snd in ['expl3.wav', 'expl6.wav']:
expl_sounds.append(pygame.mixer.Sound(path.join(snd_dir, snd)))
我想单独禁用列表中的所有项,而不是禁用整个应用程序或混合器。我尝试了以下方法:
for i in expl_sounds:
expl_sounds[i].set_volume(Sound_Volume)
TypeError: list indices must be integers or slices, not Sound
我没有收到错误信息。循环中的i是一个整数,mixer.set_Volume是元素的有效操作
迭代并将卷应用于每个元素的正确方法是什么
您的错误源于对语法
for i in expl_sounds
的误解循环中的i是一个整数不是真的,i
是expl_sounds
的一个元素,是您刚才添加的pygame.mixer.Sound
实例的一个元素所以直接使用对象
要按索引进行,请执行以下操作:
当您编写
for i in expl_sounds:
时,您正在迭代expl_sounds
中的元素,因此您只需执行以下操作:“expl_sounds”中的“i”是声音对象本身,而不是数组索引
请尝试以下操作:
相关问题 更多 >
编程相关推荐