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

时间:2017-10-14 10:14:03

标签: audio pygame

我正在为我的小弟弟在pygame上创建一个程序,其中数字1-20将按顺序出现,每个数字将由我已经创建的mp3文件发音。我现在被困在的是如何制作它这样当按下下一个按钮时,每个数字播放的声音都会改变。我不想一个接一个地做,因为它需要太长时间。有没有办法像所有mp3声音的列表一样制作,以便播放的声音与屏幕上显示的数字相匹配。

对不起,这是一个很长的问题。这是我第一次提出问题而我无法找到缩短问题的方法。

1 个答案:

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