簡體   English   中英

Pygame 音樂暫停/取消暫停切換

[英]Pygame music pause/unpause toggle

好的,這是我的代碼:

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_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()

這個不錯,我用它玩游戲

來源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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM