我正在为我的小弟弟在pygame上创建一个程序,其中数字1-20将按顺序出现,每个数字将由我已经创建的mp3文件发音。我现在被困在的是如何制作它这样当按下下一个按钮时,每个数字播放的声音都会改变。我不想一个接一个地做,因为它需要太长时间。有没有办法像所有mp3声音的列表一样制作,以便播放的声音与屏幕上显示的数字相匹配。
对不起,这是一个很长的问题。这是我第一次提出问题而我无法找到缩短问题的方法。
答案 0 :(得分:0)
如果我理解正确,您只需将声音放入列表中并使用数字作为索引。
import pygame as pg
pg.init()
SOUNDS = [
pg.mixer.Sound('1.mp3'),
pg.mixer.Sound('2.mp3'),
pg.mixer.Sound('3.mp3'),
]
def main():
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
number = 0
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.KEYDOWN:
# Just use the number as the index.
SOUNDS[number].play()
# Increment the number and keep it in the range.
number += 1
number %= len(SOUND_LIST)
screen.fill((30, 30, 30))
print(number)
pg.display.flip()
clock.tick(30)
if __name__ == '__main__':
main()
pg.quit()