我正在构建的游戏中出现音量问题。
一个例子是当我发射火箭时,它的爆炸会产生爆炸半径,并且半径内的任何敌人都会被杀死。
当一个敌人一次被杀时,死亡声音(一点尖叫)的音量水平是完美的,但是当一次爆炸中有3或4人被杀时,声音会大声播放4次。
我已经考虑过添加一张支票来查看声音是否已经播放,只有在播放时才会播放,但决定反对,因为如果一个敌人在一秒钟之后被杀死,那么只会播放一首尖叫声。 / p>
我想要的是在同一音量下播放声音的其他重叠实例,而不是添加到整体音量。
实施该方法的正确方法是什么?
答案 0 :(得分:3)
P.T。评论中提供的链接让我想到了限制任何特定声音的并发播放。
我设计的解决方案结果非常简单:只要触发了可以重叠的声音,我就会在播放之前停止播放声音。
而不是:
if (prefs.isSoundEnabled())
sndExplosion.play();
我只是将其扩展为:
if (prefs.isSoundEnabled()) {
sndExplosion.stop();
sndExplosion.play();
}
结果是,如果已经发生了爆炸或者同时触发了多次爆炸,则只能同时播放一个声音副本。