为你的 Python 游戏添加声音

通过为你的游戏添加声音,聆听你的英雄战斗、跳跃、收集战利品等时的声音。在本系列关于使用 Pygame 创建平台游戏的第 13 篇文章中学习如何操作。
72 位读者喜欢这篇文章。
Open source voice control

Pixabay。由 Opensource.com 修改。CC BY-SA 4.0。

这是关于使用 Python 3Pygame 模块创建视频游戏的系列文章的第 13 部分。之前的文章包括:

  1. 学习如何通过构建简单的骰子游戏来使用 Python 编程
  2. 使用 Pygame 模块通过 Python 构建游戏框架
  3. 如何为你的 Python 游戏添加玩家
  4. 使用 Pygame 移动你的游戏角色
  5. 没有反派的英雄算什么?如何为你的 Python 游戏添加反派
  6. 为你的游戏添加平台
  7. 在你的 Python 游戏中模拟重力
  8. 为你的 Python 平台游戏添加跳跃功能
  9. 让你的 Python 游戏玩家能够向前和向后跑
  10. 使用 Python 在 Pygame 中设置战利品
  11. 为你的 Python 游戏添加计分功能
  12. 为你的 Python 游戏添加投掷机制

Pygame 提供了一种将声音集成到你的 Python 视频游戏中的简便方法。Pygame 的 mixer 模块 可以按命令播放一个或多个声音,通过混合这些声音,你可以同时播放背景音乐,并听到英雄收集战利品或跳过敌人时的声音。

将 mixer 模块集成到现有游戏中很容易,因此,本文不是向你展示确切的放置代码示例的位置,而是解释在你的应用程序中获得声音所需的四个步骤。

启动 mixer

首先,在你的代码的设置部分,启动 mixer 进程。你的代码已经启动了 Pygame 和 Pygame 字体,因此将它与这些代码放在一起是一个好主意

pygame.init()
pygame.font.init()
pygame.mixer.init() # add this line

定义声音

接下来,你必须定义要使用的声音。这要求你的计算机上必须有声音,就像使用字体需要字体,使用图形需要图形一样。

你还必须将这些声音与你的游戏捆绑在一起,以便任何玩你游戏的人都有声音文件。

要将声音与你的游戏捆绑在一起,首先在你的游戏文件夹中创建一个新目录,与你为图像和字体创建的目录放在一起。将其命名为 sound

s = 'sound'

即使互联网上有大量声音,但下载它们并将其与你的游戏一起赠送不一定是合法的。这似乎很奇怪,因为来自著名视频游戏的许多声音都是流行文化的一部分,但法律就是这样运作的。如果你想将声音与你的游戏一起发布,你必须找到一个开源或 知识共享 声音,该声音允许你将声音与你的游戏一起赠送。

有几个专门提供免费和合法声音的网站,包括

有些声音文件仅在你注明作曲家或声音设计师的姓名时才可免费使用。在将任何声音文件与你的游戏捆绑之前,请仔细阅读使用条件!音乐家和声音设计师在声音上的努力程度与你在代码上的努力程度相同,因此即使他们不要求,也最好注明他们的姓名。

要注明你的声音来源,请在一个名为 CREDIT 的文本文件中列出你使用的声音,并将该文本文件放在你的游戏文件夹中。

你也可以尝试制作自己的音乐。出色的 LMMS 音频工作站易于使用,并附带许多有趣的声音。它在所有主要平台上都可用,并导出为 Ogg Vorbis (OGG) 音频格式。

将声音添加到 Pygame

当你找到你喜欢的声音时,请下载它。如果它以 ZIP 或 TAR 文件形式出现,请解压缩它并将声音移动到你的游戏目录中的 sound 文件夹中。

如果声音文件具有包含空格或特殊字符的复杂名称,请重命名它。文件名是完全任意的,文件名越简单,你越容易在代码中键入它。

大多数视频游戏使用 OGG 声音文件,因为该格式以小文件大小提供高质量。当你下载声音文件时,它可能是 MP3、WAVE、FLAC 或其他音频格式。为了保持高兼容性和低下载大小,请使用 fre:acMiro 等工具将这些文件转换为 Ogg Vorbis。

例如,假设你下载了一个名为 ouch.ogg 的声音文件。

在你的代码的设置部分,创建一个变量来表示你要使用的声音文件

ouch = pygame.mixer.Sound(os.path.join(s, 'ouch.ogg'))

触发声音

要使用声音,你只需在你想要触发它时调用该变量即可。例如,要在你的玩家击中敌人时触发 OUCH 音效

for enemy in enemy_hit_list:
    pygame.mixer.Sound.play(ouch)
    score -= 1

你可以为各种动作创建声音,例如跳跃、收集战利品、投掷、碰撞以及你可以想象的任何其他动作。

添加背景音乐

如果你有想要在游戏背景中播放的音乐或氛围音效,你可以使用 Pygame 的 mixer 模块的 music 函数。在你的设置部分,加载音乐文件

music = pygame.mixer.music.load(os.path.join(s, 'music.ogg'))

并启动音乐

pygame.mixer.music.play(-1)

-1 值告诉 Pygame 无限循环播放音乐文件。你可以将其设置为从 0 及以上的任何值,以定义音乐在停止之前应循环播放的次数。

享受音景

音乐和声音可以为你的游戏增添很多风味。尝试将一些添加到你的 Pygame 项目中!

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和《龙与地下城》爱好者。他曾在电影和计算机行业工作,通常同时进行。

贡献者

评论已关闭。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.