我想在我的游戏中创建一个按钮,可以控制背景音乐的开关。第一次点击将停止背景音乐,第二次点击可以恢复音乐。现在我的按钮可以控制音乐的开关,但我需要点击多次才能使其工作,似乎每次点击事件都没有捕捉到,下面是我的代码:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if 20 + 50 > mouse_position[0] > 20 and 20 + 20 > mouse_position[1] > 20:
play_music = not play_music
if play_music:
pygame.mixer.music.unpause()
else:
pygame.mixer.music.pause()
pygame.display.flip()
clock = pygame.time.Clock()
clock.tick(15)
看起来您有一个
pygame.mixer.music.pause()
,但是resume
没有。我不确定pygame的音乐混音器是如何工作的,但我建议使用一个在单击按钮时更新的标志music = 0
默认情况下,如果单击,则设置music = 1
,然后检查if music == 1: pygame.mixer.music.pause()
和{J0hn的回答是正确的。定义一个布尔变量(例如
music_paused = False
),当用户单击按钮时切换它,并调用pygame.mixer.music.pause
停止音乐,调用pygame.mixer.music.unpause
恢复音乐流的播放。在我还建议在事件循环(
for event in pygame.event.get():
)中执行碰撞检查,因为每个pygame.MOUSEBUTTONDOWN
事件只应单击一次按钮。pygame.mouse.get_pressed()
只要按下鼠标键,就会一直单击“音乐”按钮。在相关问题 更多 >
编程相关推荐