actionscript-3 - RTS 游戏的声音管理器

标签 actionscript-3 flash audio

我正在为 Epic Flash 游戏设计大赛 http://www.youtube.com/watch?v=bpFBraUbHyo&list=UUfkxvxrvpNxXvdKusYS0NfQ&index=1 在 Flash 中创建一个 RTS 游戏,AS3

几乎完成了,除了创建管理所有声音的类非常痛苦。
在缓冲区溢出之前,AS3 基本上只有 32 个可用的 SoundChannel。但不幸的是,我的RTS同时处理了几十个单位的战斗,每个单位,尤其是步枪兵一次开火。

如果我让每个音效都响起,缓冲区就会溢出,即使没有,听起来也会非常嘈杂和困惑。
所以问题是,我在市场上见过像星际争霸这样的游戏,屏幕上有数百个单元,但声音却相当“无噪音”且有条理。请问那些人是怎么达到这个效果的?他们接受或过滤掉什么声音?

目前我有 3 种可能的模型:
1)先进先出模式:接受所有正在播放的声音,但一旦达到缓冲区限制,缓冲区中最早的声音就会被静音。

2)接受或拒绝模型:接受所有声音直到缓冲区溢出,然后拒绝所有进一步的播放直到声音结束并且缓冲区清空。

3) 最响的唯一模型:目前我的游戏有多种不同响度的声音,例如,爆炸声比枪声大。在这个模型中,正在播放最响亮的 32 个声音,如果进入前 32 个声音中的声音,则“踢”32 个中最低的声音并替换它。

哪种型号最好,或者您可以建议自己的型号=p。

最佳答案

也许还考虑为“单一”和“大规模”事件使用不同的声音文件......

  • 1 艘宇宙飞船 - 播放“单一宇宙飞船声音”
  • 2 艘宇宙飞船 - 播放两次“单一宇宙飞船声音”
  • 3 艘或更多 spaceship - 播放“许多 spaceship 的声音”

  • ...无论如何,按类型对缓冲区中的声音进行分组可能是一个好主意,因为如果这些声音太多,您可以轻松地使一个“ spaceship 声音”静音,而无需静音其他元素。

    关于actionscript-3 - RTS 游戏的声音管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053628/

    相关文章:

    php - 在AS3中使用自定义类处理数据库查询

    javascript - 如何结合JavaScript Soundcloud播放器和Flash可视化

    ios - NetStream http 视频无法在 IOS 设备上播放

    ffmpeg - MP4 的实时转码和流式传输在 Android 中有效,但在 Flash 播放器中失败并出现 NetStream.Play.FileStructureInvalid 错误

    ios - 使用 AVAudioEngine 实现立体声麦克风直通?

    actionscript-3 - 当我添加按钮时,为什么动态文本消失了?

    apache-flex - 在 Adob​​e Flex/AIR 应用程序中调整应用程序窗口大小时调整容器大小

    database - Windows Phone 7在数据库中保存图像和声音

    javascript - 如何在 HTML 中点击图像时播放声音?

    c - Adobe alchemy 编译器问题 - 它生成 .l.bc 文件,如何将它们转换为 swc 文件?