跳过配乐(pygame.mixer.music)



我正在用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时停止背景音乐吗?

您的代码不起作用,因为在加载并播放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

最新更新