【问题标题】:LibGDX - How do I prevent a sound from playing too loud when overlapping?LibGDX - 如何防止声音在重叠时播放过大?
【发布时间】:2015-03-07 08:16:30
【问题描述】:

我正在构建的游戏中遇到音量问题。

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

当一次杀死一个敌人时,死亡声音(一点点尖叫)的音量是完美的,但是当一次爆炸杀死 3 或 4 个敌人时,声音会响亮 4 倍。

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

我想要的是一个声音的额外重叠实例以相同的音量播放,而不是增加整体音量。

实现它的正确方法是什么?

【问题讨论】:

标签: audio libgdx volume


【解决方案1】:

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

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

代替:

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

我只是将其扩展为:

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

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

【讨论】:

    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多