LibGDX - 重叠时如何防止声音播放过大?

时间:2015-03-07 08:16:31

标签: audio libgdx volume

我正在构建的游戏中出现音量问题。

一个例子是当我发射火箭时,它的爆炸会产生爆炸半径,并且半径内的任何敌人都会被杀死。

当一个敌人一次被杀时,死亡声音(一点尖叫)的音量水平是完美的,但是当一次爆炸中有3或4人被杀时,声音会大声播放4次。

我已经考虑过添加一张支票来查看声音是否已经播放,只有在播放时才会播放,但决定反对,因为如果一个敌人在一秒钟之后被杀死,那么只会播放一首尖叫声。 / p>

我想要的是在同一音量下播放声音的其他重叠实例,而不是添加到整体音量。

实施该方法的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

P.T。评论中提供的链接让我想到了限制任何特定声音的并发播放。

我设计的解决方案结果非常简单:只要触发了可以重叠的声音,我就会在播放之前停止播放声音。

而不是:

if (prefs.isSoundEnabled())
    sndExplosion.play();

我只是将其扩展为:

if (prefs.isSoundEnabled()) {
    sndExplosion.stop();
    sndExplosion.play();
}

结果是,如果已经发生了爆炸或者同时触发了多次爆炸,则只能同时播放一个声音副本。