如何播放将继续变化的声音 - Pygame

如何播放将继续变化的声音 - Pygame

问题描述:

我正在为pygame上的我的小弟弟创建一个程序,其中数字1-20将按顺序出现,每个数字将由我已创建的mp3文件发音。我现在卡住的是如何使它为每个数字播放的声音会随着下一个按钮被按下而改变。我不想一个接一个地做,因为它会花很长时间。有没有一种方法可以将所有的mp3声音制作成一个列表,以便播放的声音与屏幕上显示的数字相匹配。如何播放将继续变化的声音 - Pygame

对不起,这是一个长期的问题。这是我第一次问一个问题,我找不到缩短它的方法。

如果我正确理解你,你只需要把声音放到一个列表中,并使用该数字作为索引。

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()