跳过音轨(pygame.mixer.music)

时间:2018-08-12 23:48:01

标签: python python-3.x pygame mixer

我正在用pygame制作蛇类游戏,我想对pygame.mixer.music()有所了解。

代码:

snakebodypos.insert(0, list(snakepos))
if snakepos[0] == foodpos[0] and snakepos[1] == foodpos[1]:
    pygame.mixer.music.stop()
    pygame.mixer.music.load(eatsound)
    pygame.mixer.music.play(1, 0.0)
    pygame.mixer.music.load(main)
    pygame.mixer.music.play(-1, 0.0)
    foodspawn = False
    score += 1

所以,当我停下来并且应该播放Eatsound时,它会跳过并再次播放停止的声音。

保持头脑!
当我使用暂停和取消暂停时,它不会再次取消暂停。我不知道为什么,所以我停了下来。如果您知道为什么会发生这种情况,请告诉我。

1 个答案:

答案 0 :(得分:2)

在播放eatsound时是否有任何理由要停止背景音乐?

您的代码无法正常工作,因为加载并播放eatsound之后,您立即又加载了main,因此eatsound没有时间播放。


通常,您使用pygame.mixer.music播放背景音乐,并且对于声音效果,您使用pygame.mixer.Sound,因此您的代码应如下所示:

# load the Sound once at the beginning
eatsound_sound = pygame.mixer.Sound(eatsound)

...

snakebodypos.insert(0, list(snakepos))
if snakepos[0] == foodpos[0] and snakepos[1] == foodpos[1]:
    # play the eat sound. don't touch the background music
    eatsound_sound.play() 
    foodspawn = False
    score += 1