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

Audio LibGDX-如何防止重叠时声音过大?,audio,libgdx,volume,Audio,Libgdx,Volume,我正在制作的游戏的音量有问题 举个例子,当我发射火箭时,它的爆炸会产生一个爆炸半径,半径内的任何敌人都会被杀死 当一次杀死一个敌人时,死亡声音(一声尖叫)的音量是完美的,但当一次爆炸中有3或4个敌人被杀死时,声音会播放4倍的声音 我曾经考虑过添加一个检查,看看声音是否已经播放,如果没有,只播放,但我决定不这样做,因为如果一个敌人在另一个敌人被杀死半秒钟后,只会播放一声尖叫 我想要的是在同一音量下播放一个声音的其他重叠实例,而不是增加整个音量 实现这一点的正确方法是什么?p.T.评论中提供的链接让

我正在制作的游戏的音量有问题

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

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

我曾经考虑过添加一个检查,看看声音是否已经播放,如果没有,只播放,但我决定不这样做,因为如果一个敌人在另一个敌人被杀死半秒钟后,只会播放一声尖叫

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


实现这一点的正确方法是什么?

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

我设计的解决方案非常简单:每当触发一个可能重叠的声音时,我只是在它播放之前停止它

而不是:

if (prefs.isSoundEnabled())
    sndExplosion.play();
我只是把它扩展到:

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

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

请看,或者甚至(不是真正针对libgdx的)谢谢p.T.-这两个链接都没有一个精确的解决方案对我的问题是可行的,但它们的结合让我沿着正确的轨道思考,想出了一个可行的解决方案:)