You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:05:27