Pygame播放声音与音效
简单学习自小甲鱼视频教学(笔记)
实现功能:
运行后自动播放背景音乐,单击左键播放音效①,单击右键播放音效②,
空格键控制暂停背景音乐与恢复背景音乐,并且实现播放图标的切换。
代码如下:
- import pygame
- import sys
- from pygame.locals import *
- pygame.init()
- pygame.mixer.init() # 初始化混音器模块
- # 音效可以同时播放多个,而music只能同时播放一个
- pygame.mixer.music.load('BG.ogg') # 背景音乐通常用.ogg格式
- pygame.mixer.music.set_volume(0.2) # 设置音量
- pygame.mixer.music.play() # 播放音乐
- sound1 = pygame.mixer.Sound('M1.wav') # 音效通常用.wav格式
- sound1.set_volume(0.2)
- sound2 = pygame.mixer.Sound('M2.wav')
- sound2.set_volume(0.2)
- bg_size = width, height = 300, 200
- screen = pygame.display.set_mode(bg_size)
- pygame.display.set_caption('Music')
- pause = False
- pause_img = pygame.image.load('pause.png').convert_alpha()
- unpause_img = pygame.image.load('unpause.png').convert_alpha()
- pause_rect = pause_img.get_rect()
- pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2
- clock = pygame.time.Clock()
- while True:
- for event in pygame.event.get():
- if event.type == QUIT:
- sys.exit()
- if event.type == MOUSEBUTTONDOWN:
- if event.button == 1: # 左键
- sound1.play()
- if event.button == 3: # 右键
- sound2.play()
- if event.type == KEYDOWN:
- if event.key == K_SPACE: # 空格
- pause = not pause
- screen.fill((255, 255, 255)) # 填充背景
- if pause:
- screen.blit(pause_img, pause_rect)
- pygame.mixer.music.pause() # 暂停播放
- else:
- screen.blit(unpause_img, pause_rect)
- pygame.mixer.music.unpause() # 恢复播放
- pygame.display.flip()
- clock.tick(30) # 帧率为30
我的素材下载:https://files.cnblogs.com/files/GraceSkyer/20180202.zip
备注:我这png图片之前被我调小失真了,但是不影响该演示,就不改图了...
Pygame播放声音与音效的更多相关文章
- 小甲鱼零基础入门PYTHON
000.愉快的开始 00:17:37 ☆ 001.我和Python的第一次亲密接触 00:13:26 ★ 002.用Python设计第一个游戏 00:24:00 ★ 003.小插曲之变量和字符 ...
- Python3零基础入门学习视频+源码+课件+习题-小甲鱼
目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...
- pygame 笔记-8 背景音乐&子弹音效
游戏哪能没有音效?这节我们研究下如何加背景音乐,其实也很简单: # 加载背景音乐 pygame.mixer.music.load(music_base_path + "music.mp3&q ...
- Pygame播放背景音乐与音效
1.播放背景音乐 pygame.mixer.music.load() 加载MP3格式 加入pygame.mixer.init()即可 第十一行第一个参数:播放次数(n>0),n=0时播放1次,- ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块制作一个音效播放器
用 Sound 对象制作一个音效播放器. 应用程序总览 程序在执行后默认会把 WAV 音频文件加载到清单中,单击“播放”按钮可开始 播放,同时显示 “正在播放 xxx 音效”的信息 . 播放过程中,可 ...
- Python3+Pygame实现的射击游戏,很流畅,有音效
之前看到过很多人写的飞机大战,当然了之前我也写过多个版本,总体来说功能是实现了,但总感觉不够"炫" 今天浏览Python资料的时候,意外发现了这个很好的"射击" ...
- pygame-KidsCanCode系列jumpy-part14-背景音乐及音效
没有音乐和音效的游戏是没有灵魂的,这回讲解如何处理背景音乐及跳跃音效.加载music及sound的方法,之前已经写过,见:pygame 笔记-8 背景音乐&子弹音效 . 先介绍一个很棒的生成各 ...
- Android 使用SoundPool播放音效
在Android开发中我们经常使用MediaPlayer来播放音频文件,但是MediaPlayer存在一些不足,例如:资源占用量较高.延迟时间较长.不支持多个音频同时播放等.这些缺点决定了MediaP ...
- iOS开发--音乐文件播放工具类的封装(包含了音效的封装)
一.头文件 #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundation.h> @interface ...
随机推荐
- Codeforces 985G. Team Players
Description 有 \(n\) 个人 , \(m\) 对人有冲突 , 你要从这 \(n\) 个人中选出三个人成为一组 , 使得同一组的人不存在一对有冲突 题面 Solution 容斥 答案=总 ...
- laravel5.4学习--laravel基本路由
最基本的 Laravel 路由只接收一个 URI 和一个闭包,并以此提供一个非常简单且优雅的定义路由方法: Route::get('foo', function () {return 'Hello W ...
- JAVA字符编码测试
几点注意: 1,ASCII码和ISO-8859-1都是单字节编码,ASCII码能表示128个字符,ISO-8859-1总共能表示256个字符.都不能表示中文,如果中文字符或其它不在IOS-8859码值 ...
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化
使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...
- Java调用TSC打印机进行打印
最近项目中用到了打印机,最开始的完全不懂,现在弄好了,所以做了总结,该篇包括后台的调用打印(两种方式)跟前端的js的打印,但是只有IE现在支持打印,而且如果想远程连接打印机,二维码的生成和直接由打印机 ...
- JS 监听键盘按键
1. 实现Ctrl+ Enter 组合键触发事件 document.onkeydown=function(event){ var keyNum = window.event ? event.keyCo ...
- Spring FactoryBean用法
最近在看spring ioc源码,看到FactoryBean这个内容.这个和BeanFactory的区别 1. BeanFactory: 生成bean的工厂,是一个接口,定义了很多方法 2. Fact ...
- 记录一次使用terminal进行git管理与提交到Github的过程
1.环境的构建: 使用Mac系统自带的Git进行版本管理存在,Git是系统的Xcode集成的 查看版本的命令: $ git --version git version (Apple Git-) 查看g ...
- 微软2016校园招聘在线笔试-Professor Q's Software
题目2 : Professor Q's Software 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Professor Q develops a new softw ...
- select实现三级联动
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...