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

 

posted @ 2018-02-02 19:18  GraceSkyer  阅读(4798)  评论(1编辑  收藏  举报

~~~~~~ACM大牛语录,激励一下~~~~~~

为了世界的和平,为了女生的安全,我拼命做题,做题,做题!

用最短的时间,刷最多的题!

给我一滴泪,我就看到了你全部的海洋!

seize the hour, seize the day.

人生难免有无奈,幸福走远了,或是感叹幸福来迟了.其实我一直相信,无论手中的幸福是多么微不足道的感觉,我会把握住那每一分,每一秒,当幸福依旧像那百鸟般飞逝,终究无法掌握时,我会感谢它,曾经降临过!

A自己的题,让别人郁闷去吧

WA肠中过,AC心中留 TLE耳边过,AC特别牛

天然的悲苦和伤逝,过去有过,以后还会有

^*^一步一步往上爬^*^

AC就像练级,比赛就像PK. 练级不如PK好玩

其实,世上本没有ACM,AC的人多了,也便有了!

AC无止尽~ Seek you forever~

找呀找呀找水题,找到一个AC一个呀!

AC是检验程序的唯一标准。

真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血……