首页 > 解决方案 > 为pygame项目随机化背景音乐

问题描述

我试图在这个非常基本的太空侵略者游戏中改变我的背景音乐。我只是希望它在游戏开始或重新启动时从 5 首歌曲列表中随机播放一首歌曲(我还没有添加重新启动按钮)我在终端中没有收到任何错误,但也没有任何播放。

# background music
play_list = []
play_list.append("./toonz/toon1.mp3")
play_list.append("./toonz/toon2.mp3")
play_list.append("./toonz/toon3.mp3")
play_list.append("./toonz/toon4.mp3")
play_list.append("./toonz/toon5.mp3")

def play_toonz(play_list):
    random.shuffle(play_list)
    pygame.mixer.music.load(play_list[songNumber])
    pygame.mixer.music.play(-1)

    for num, song in enumerate(play_list):
        if num == songNumber:
            continue
        mixer.music.queue(song)

认为我可能写错了函数?

标签: python-3.xpygame

解决方案


这段代码对我有用:

import pygame
import random

pygame.mixer.init()

# background music
play_list = []
play_list.append(r"D:\MikeStuff\MP3\04-Zombie.mp3")
play_list.append(r"D:\MikeStuff\MP3\03 Invincible.mp3")
play_list.append(r"D:\MikeStuff\MP3\10. Kashmir.mp3")
play_list.append(r"D:\MikeStuff\MP3\11-fozzy-sos.mp3")
play_list.append(r"D:\MikeStuff\MP3\104-radiohead-creep.mp3")

songNumber = 1

def play_toonz(play_list):
    random.shuffle(play_list)
    pygame.mixer.music.load(play_list[songNumber])
    pygame.mixer.music.play(10)

    for num, song in enumerate(play_list):
        if num == songNumber:
            continue
        pygame.mixer.music.queue(song)
        
play_toonz(play_list)
input("Press Enter to Exit....")

推荐阅读