2017-10-14 71 views
0

我正在爲pygame上的我的小弟弟創建一個程序,其中數字1-20將按順序出現,每個數字將由我已創建的mp3文件發音。我現在卡住的是如何使它爲每個數字播放的聲音會隨着下一個按鈕被按下而改變。我不想一個接一個地做,因爲它會花很長時間。有沒有一種方法可以將所有的mp3聲音製作成一個列表,以便播放的聲音與屏幕上顯示的數字相匹配。如何播放將繼續變化的聲音 - Pygame

對不起,這是一個長期的問題。這是我第一次問一個問題,我找不到縮短它的方法。

回答

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