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图片之前被我调小失真了,但是不影响该演示,就不改图了...

 

转载于:https://www.cnblogs.com/GraceSkyer/p/8406556.html

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值