Python Pygame音乐暂停/取消暂停切换
好的,这是我的代码:Python Pygame音乐暂停/取消暂停切换,python,pygame,toggle,keypress,Python,Pygame,Toggle,Keypress,好的,这是我的代码: def toggleMusic(): if pygame.mixer.music.get_busy(): pygame.mixer.music.pause() else: pygame.mixer.music.unpause() ---事件处理--- 如果按“m”,则应切换音乐是否暂停 toggleMusic() 它可以暂停音乐但不能取消暂停,有什么解释吗?它不会取消暂停音乐,因为pygame.mixer.music.
def toggleMusic():
if pygame.mixer.music.get_busy():
pygame.mixer.music.pause()
else:
pygame.mixer.music.unpause()
---事件处理---
如果按“m”,则应切换音乐是否暂停
toggleMusic()
它可以暂停音乐但不能取消暂停,有什么解释吗?它不会取消暂停音乐,因为
pygame.mixer.music.pause()
不会影响pygame.mixer.music.get\u busy()的状态
要获得您正在寻找的行为,您需要维护自己的变量,该变量跟踪暂停/未暂停状态。您可以在类中执行此操作:
class mixerWrapper():
def __init__(self):
self.IsPaused = False
def toggleMusic(self):
if self.IsPaused:
pygame.mixer.music.unpause()
self.IsPaused = False
else:
pygame.mixer.music.pause()
self.IsPaused = True
我也有同样的问题。供其他人参考,我的解决方案是使用一个简单的类
class Pause(object):
def __init__(self):
self.paused = pygame.mixer.music.get_busy()
def toggle(self):
if self.paused:
pygame.mixer.music.unpause()
if not self.paused:
pygame.mixer.music.pause()
self.paused = not self.paused
# Instantiate.
PAUSE = Pause()
# Detect a key. Call toggle method.
PAUSE.toggle()
这个不错,我用它做游戏
来源
音乐暂停后,您是否尝试打印get_busy的值以确认其为False?您需要修复缩进。实际上,toggleMusic
方法中的每一行缩进都不正确。仅为此创建一个单独的类也可能会有些过分。@elParaguayo已修复,谢谢。你同意这可能有点过分,你也可以把一个IsPaused变量传递到toggleMusic
code-only答案在这个网站上是不受欢迎的。请编辑您的答案,包括一些注释或对代码的解释,好吗?解释应该回答这样的问题:它做什么?它是如何做到的?它去哪里了?它如何解决OP的问题?
is_paused = False
def toggle_pause():
global is_paused
if is_paused == True:
is_paused = False
else:
is_paused = True
wn.listen()
wn.onkeypress(toggle_pause, " ")
while True:
if not is_paused:
bob.fd(1)
bob.lt(1)
else:
wn.update()