【问题标题】:Pygame music will not play inside of my game functionPygame 音乐无法在我的游戏功能中播放
【发布时间】:2020-10-13 19:39:13
【问题描述】:

我正在尝试制作一些平静的背景音乐,以便在游戏的战斗阶段播放,我的游戏在函数内部运行,每当我调用函数播放音乐时,它都会保持静音,直到我退出游戏() 函数,然后音乐会突然响起,我将不胜感激任何可能导致此问题的原因。

def game():
        running = True
        while running:
                screen.fill((0, 0, 0))
                sewer = pygame.image.load('assets\\backgrounds\\sewer.png')
                screen.blit(sewer,(0,0))
                mx, my = pygame.mouse.get_pos()
                turn = 0
                mob()
                monster_health()
                stopmusic()
                pmusic("assets\\music\\battlemusic.mp3")



def stopmusic():
    pygame.mixer.music.stop()

def pmusic(file):
    pygame.mixer.music.load(file)
    pygame.mixer.music.play(-1)

【问题讨论】:

  • 您似乎每帧都开始和停止音乐。在 while 循环之前调用 pmusic 并从 while 循环中删除 stopmusic 和 pmusic。

标签: python pygame


【解决方案1】:

您在拨打stopmusic() 之后立即拨打pmusic()。 因此,每次您进入游戏循环时,音乐都会立即关闭并重新开始。当您结束游戏时,您会在打开音乐后退出 while 循环,这就是您之后听到它的原因。 您应该在进入游戏循环之前启动音乐,并在退出时停止:

def game():
    running = True
    pmusic("assets\\music\\battlemusic.mp3")
    while running:
        ...
    stopmusic()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多