• Pygame播放声音与音效


    简单学习自小甲鱼视频教学(笔记)

     

    实现功能: 

      运行后自动播放背景音乐,单击左键播放音效①,单击右键播放音效②,

      空格键控制暂停背景音乐与恢复背景音乐,并且实现播放图标的切换。

    代码如下:

     1 import pygame
     2 import sys
     3 from pygame.locals import *
     4 
     5 pygame.init()
     6 pygame.mixer.init()  # 初始化混音器模块
     7 # 音效可以同时播放多个,而music只能同时播放一个
     8 pygame.mixer.music.load('BG.ogg')   # 背景音乐通常用.ogg格式
     9 pygame.mixer.music.set_volume(0.2)  # 设置音量
    10 pygame.mixer.music.play()  # 播放音乐
    11 
    12 sound1 = pygame.mixer.Sound('M1.wav')  # 音效通常用.wav格式
    13 sound1.set_volume(0.2)
    14 sound2 = pygame.mixer.Sound('M2.wav')
    15 sound2.set_volume(0.2)
    16 
    17 bg_size = width, height = 300, 200
    18 screen = pygame.display.set_mode(bg_size)
    19 pygame.display.set_caption('Music')
    20 
    21 pause = False
    22 
    23 pause_img = pygame.image.load('pause.png').convert_alpha()
    24 unpause_img = pygame.image.load('unpause.png').convert_alpha()
    25 pause_rect = pause_img.get_rect()
    26 pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2
    27 
    28 clock = pygame.time.Clock()
    29 
    30 while True:
    31     for event in pygame.event.get():
    32         if event.type == QUIT:
    33             sys.exit()
    34 
    35         if event.type == MOUSEBUTTONDOWN:
    36             if event.button == 1:  # 左键
    37                 sound1.play()
    38             if event.button == 3:  # 右键
    39                 sound2.play()
    40 
    41         if event.type == KEYDOWN:
    42             if event.key == K_SPACE:  # 空格
    43                 pause = not pause
    44 
    45     screen.fill((255, 255, 255))  # 填充背景
    46 
    47     if pause:
    48         screen.blit(pause_img, pause_rect)
    49         pygame.mixer.music.pause()  # 暂停播放
    50     else:
    51         screen.blit(unpause_img, pause_rect)
    52         pygame.mixer.music.unpause()  # 恢复播放
    53 
    54     pygame.display.flip()
    55 
    56     clock.tick(30)  # 帧率为30
    View Code

    我的素材下载:https://files.cnblogs.com/files/GraceSkyer/20180202.zip

    备注:我这png图片之前被我调小失真了,但是不影响该演示,就不改图了...

  • 相关阅读:
    AD 485、422电路
    AD 差分
    思维导图
    68 二叉树的最近公共祖先
    65. 不用加减乘除做加法
    64. 求1+2+…+n
    10- I. 斐波那契数列
    11&12. 旋转数组的最小数字
    12. 矩阵中的路径
    13. 机器人的运动范围
  • 原文地址:https://www.cnblogs.com/GraceSkyer/p/8406556.html
Copyright © 2020-2023  润新知