音频
Pyxen 支持两种音频:音效用于短效果,音乐用于较长的曲目。两者都作为组件附加到实体上。
音效
Sound 是一个短音频片段——跳跃声、击中声、拾取金币声。通过生成一个带有 Sound 组件的实体来播放音效:
world.spawn(sound=Sound("jump"))
音效立即播放。你可以控制播放属性:
world.spawn(sound=Sound("laser", loop=True, volume=0.5, pan=-0.5))
| 属性 | 含义 |
|---|---|
loop | 是否循环播放 |
volume | 音量(0.0 = 静音,1.0 = 最大) |
pan | 立体声位置(-1.0 = 左,0.0 = 中间,1.0 = 右) |
音效从你项目素材中的音频文件加载。
音效库
声音工作区的音效库保存项目的音效:▶ 就地播放一个,列表下方的那行是播放所选声音的代码。顶部的三个按钮用来添加:
- 制作音效(魔杖)制作一个新音效并播放;在音效库旁的 SFX 面板里调整它。
- 录制声音…(麦克风)最多录制 10 秒。在没有麦克风的设备上它显示为灰色。
- 导入声音…(指向托盘的箭头)添加声音文件。
把指针停在按钮上可看到它的名称,在 iPad 上则长按。面板太窄放不下三个按钮时,它们会合并到一个 + 音效 菜单里。空的音效库会用文字列出这三项。
在较窄的 iPad 窗口中,SFX 面板的声音和播放留在顶部,它的控件成为托盘中的工具:预设、形状、音高和效果。
声音库栏中的在代码中使用会列出脚本中用到其声音的行;选择一行即可跳过去。在代码中 Cmd+点按声音名,例如 Sound("sfx/coin"),会打开它的声音库并选中那个声音。
音乐
Music 的工作方式与 Sound 类似,但专为较长的曲目设计。音乐是流式播放的,而不是完全加载到内存中:
world.spawn(music=Music("theme", loop=True))
Music 支持相同的属性:loop、volume 和 pan。
曲目还可以告诉你的游戏它播放到了哪里。追踪器模块会提供各个声部和拍,因此游戏可以将某个声部静音,或在每一拍上产生脉冲;channels、beat、bar 和 tempo 请参阅 Music 参考。
音频作为组件
因为音频附加到实体上,你可以像管理其他一切一样管理它:
# start background music
bgm = world.spawn(name="bgm", music=Music("overworld", loop=True))
# stop it later
world.destroy(bgm)
这与 ECS 模型自然契合——音频只是实体上的另一个组件,在帧检查器中和其他一切一样可见。
录制声音
在带麦克风的 Mac 或 iPad 上,在音效库中打开录制音效,即可录制最长 10 秒的一段录音。按圆形按钮或空格键开始,再按一次停止。
停止后,整段录音会完整画出,时长旁的播放会带着播放头播放它;空格键也可以播放和停止。添加到库会把你听过的这段录音添加为新的音效。圆形按钮会直接录制新的一段来替换它,不再询问;空格键则不会。
支持的格式
- 音效:WAV
- 音乐:OGG Vorbis、MIDI 和追踪器模块(MOD、XM、IT、S3M)
用**文件 › 导入图像或声音…**将音频文件添加到你的项目。