Button 如何制作一个;“开-关”;音乐按钮?

Button 如何制作一个;“开-关”;音乐按钮?,button,audio,pygame,Button,Audio,Pygame,我对pygame有问题。我想知道如何在我的游戏中设置歌曲的“开/关”按钮 if event.type == MOUSEBUTTONDOWN: if event.pos[0] > 35 and event.pos[0] < 105 and event.pos[1] > 460 and event.pos[1] < 565: if pygame.mixer.music.play(): pygame.mixer.music.pause()

我对pygame有问题。我想知道如何在我的游戏中设置歌曲的“开/关”按钮

if event.type == MOUSEBUTTONDOWN: 
  if event.pos[0] > 35 and event.pos[0] < 105 and event.pos[1] > 460 and event.pos[1] < 565: 
    if pygame.mixer.music.play(): 
       pygame.mixer.music.pause() 
    elif pygame.mixer.music.pause():
       pygame.mixer.music.unpause()
如果event.type==MOUSEBUTTONDOWN:
如果event.pos[0]>35,event.pos[0]<105,event.pos[1]>460,event.pos[1]<565:
如果pygame.mixer.music.play():
pygame.mixer.music.pause()
elif pygame.mixer.music.pause():
pygame.mixer.music.unpuse()

提前谢谢,对不起我的英语不好。

你不应该在
if
条件下要求
pygame.mixer.music.play()
,因为那是
play
函数而不是状态

而是将状态保留在变量中:

music_playing = True
pygame.mixer.music.play()

...
while ...:

    for events...:

        if event.type == MOUSEBUTTONDOWN: 
            if event.pos[0] > 35 and event.pos[0] < 105 and event.pos[1] > 460 and event.pos[1] < 565: 
                if music_playing: 
                   pygame.mixer.music.pause()
                   music_playing = False
                else:
                   pygame.mixer.music.unpause()
                   music_playing = True
music\u playing=True
pygame.mixer.music.play()
...
而
对于事件…:
如果event.type==MOUSEBUTTONDOWN:
如果event.pos[0]>35,event.pos[0]<105,event.pos[1]>460,event.pos[1]<565:
如果正在播放音乐:
pygame.mixer.music.pause()
播放音乐=错误
其他:
pygame.mixer.music.unpuse()
播放音乐=正确

您不应该在
if
条件下请求
pygame.mixer.music.play()
,因为这是
play
函数而不是状态

而是将状态保留在变量中:

music_playing = True
pygame.mixer.music.play()

...
while ...:

    for events...:

        if event.type == MOUSEBUTTONDOWN: 
            if event.pos[0] > 35 and event.pos[0] < 105 and event.pos[1] > 460 and event.pos[1] < 565: 
                if music_playing: 
                   pygame.mixer.music.pause()
                   music_playing = False
                else:
                   pygame.mixer.music.unpause()
                   music_playing = True
music\u playing=True
pygame.mixer.music.play()
...
而
对于事件…:
如果event.type==MOUSEBUTTONDOWN:
如果event.pos[0]>35,event.pos[0]<105,event.pos[1]>460,event.pos[1]<565:
如果正在播放音乐:
pygame.mixer.music.pause()
播放音乐=错误
其他:
pygame.mixer.music.unpuse()
播放音乐=正确

您应该解释代码的问题所在。它不工作了?它抛出了一个错误?你应该解释你的代码有什么问题。它不工作了?它抛出了一个错误?好的,非常感谢你的回答。我只是用了一个“else”而不是“elif”,现在它起作用了。好的,非常感谢你的回答。我只是用了一个“else”而不是“elif”,现在它起作用了。