如何在Pygame程序中按下S键停止播放音乐?
实现按下S键停止Pygame背景音乐
你只需要在键盘按键事件的处理逻辑中,新增对S键的判断,调用Pygame提供的pygame.mixer.music.stop()方法就能停止正在播放的背景音乐。
以下是修改后的完整代码,新增部分已标注:
import pygame, sys from pygame.locals import QUIT def main(): pygame.init() # 初始化显示 DISPLAYSURF = pygame.display.set_mode((400, 300)) pygame.display.set_caption('Drop Shadow!') # 加载音效 beep_sound = pygame.mixer.Sound('Joy.wav') # 加载背景音乐 pygame.mixer.music.load('Joy.wav') # 游戏时钟 game_clock = pygame.time.Clock() # 游戏循环 running = True while running: # 更新delta_time delta_time = game_clock.tick(60) / 100 # 事件处理 for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: # 播放音效 pygame.mixer.Sound.play(beep_sound) if event.key == pygame.K_p: # 循环播放背景音乐 pygame.mixer.music.play(-1) # 新增:按下S键停止背景音乐 if event.key == pygame.K_s: pygame.mixer.music.stop() # 绘制界面 DISPLAYSURF.fill((128, 128, 128)) pygame.display.flip() if __name__ == "__main__": main()
关键说明
pygame.mixer.music.stop()会立即终止当前播放的背景音乐,无论它是否处于循环状态。- 停止后如果需要重新播放,再次按下P键即可重新启动循环播放。
内容的提问来源于stack exchange,提问作者mohd12
相关产品推荐
相关产品推荐

