好的,这是我的代码:
def toggleMusic():
if pygame.mixer.music.get_busy():
pygame.mixer.music.pause()
else:
pygame.mixer.music.unpause()
---事件处理---
如果按'm',它应该切换音乐是否暂停而不是暂停
toggleMusic()
它可以暂停音乐而不是取消暂停,任何解释?
答案 0 :(得分:1)
有同样的问题。对于其他人的参考,我的解决方案是使用一个简单的类。
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()
答案 1 :(得分:0)
它不会取消音乐,因为pygame.mixer.music.pause()
不会影响pygame.mixer.music.get_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
答案 2 :(得分:0)
这个很好,我用它来玩游戏
来源https://youtu.be/kzTloDq1FiQ
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()