《Python和Pygame游戏开发指南》——2.22 播放声音

简介:

本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.22节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.22 播放声音

播放存储在声音文件中的声音,甚至比显示图像文件中的图像还要简单。首先,必须通过调用pygame.mixer.Sound()构造函数,来创建一个pygame.mixer.Sound对象(后面我们将其简称为Sound对象)。它接受一个字符串参数,这是声音文件的文件名。Pygame可以加载WAV、MP3或OGG文件。http://invpy.com/formats 介绍了这些声音文件格式的区别。

要播放声音,调用Sound对象的play()方法。如果想要立即停止Sound对象播放,调用stop()方法。stop()方法没有参数。如下是一些示例代码。


screenshot

可以从http://invpy.com/beeps.wav 下载beeps.wav 文件。

在调用play()之后,程序会立即继续执行;在移动到下一行代码之前,它不会等待声音播放完成。

当玩家受到伤害、挥动一次剑,或收到一个硬币的时候,用Sound对象播放声音效果,这对游戏来说是很不错的。但是,如果不管游戏中发生了什么,都有一个背景音乐在播放,你的游戏可能会更好。Pygame一次只能加载一个作为背景音乐播放的声音文件。要加载一个背景声音文件,调用pygame.mixer.music.load()函数并且将要加载的声音文件作为一个字符串参数传递。这个文件可以是WAV、MP3或MIDI格式。

要开始把加载的声音文件作为背景音乐播放,调用pygame.mixer.music.play(−1, 0.0)函数。当到达了声音文件的末尾的时候,−1参数会使得背景音乐永远循环。如果将其设置为一个整数0或者更大,那么,音乐只能循环指定的那么多次数,而不是永远循环。0.0意味着从头开始播放声音文件。如果这是一个较大的整数值或浮点值,音乐会开始播放直到声音文件中指定的那么多秒。例如,如果传入13.5作为第二个参数,声音文件会从开始处播放到第13.5秒的地方。

要立即停止背景音乐,调用pygame.mixer.music.stop()函数。该函数没有参数。

如下是声音方法和函数的一些示例代码。


screenshot

相关文章
|
3月前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
320 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
3月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
112 7
|
3月前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
198 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
3月前
|
Java 图形学 Python
用Python和Pygame打造绚丽烟花效果+节日祝福语
本文介绍了一款基于Python和Pygame库实现的烟花效果程序,模拟烟花发射、爆炸及粒子轨迹,结合动态文本显示祝福语,营造逼真的节日氛围。程序包括烟花类、粒子类、痕迹类和动态文本显示功能,通过随机化颜色、速度和粒子数量增加效果多样性。用户可以看到烟花从屏幕底部发射、上升并在空中爆炸,伴随粒子轨迹和动态祝福语“蛇年大吉”、“Happy Spring Festival”。文章详细解析了核心代码逻辑和技术要点,帮助读者理解如何利用Pygame库实现复杂视觉效果,并提供了未来改进方向,如优化性能、增加特效和增强交互性。
154 20
|
4月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
100 33
|
5月前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
6月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
106 1
|
6月前
|
Python
Python 游戏开发实战:从入门到精通
本文介绍利用Python与Pygame库进行游戏开发的基础知识。Pygame是专为游戏设计的Python库,提供了丰富的功能简化游戏开发流程。文中首先指导读者完成Pygame库的安装,并通过示例代码演示了游戏窗口创建、基本图形绘制及用户输入处理等核心概念。此外,还展示了如何通过定义类来组织游戏对象,帮助读者更高效地管理游戏代码。适合初学者入门Python游戏开发。
393 1
|
7月前
|
编解码 Python Windows
python有没有包 可以检测 这个视频是否可以播放
python有没有包 可以检测 这个视频是否可以播放
|
7月前
|
Python
python编写下象棋游戏|4-14
python编写下象棋游戏|4-14

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等