我正在开发一款游戏。 我如何根据 Sprite 与当前渲染场景的“距离”来“淡入”声音的音量? 假设我有一个世界:
WIDTH_WORLD = 10000
HEIGHT_WORLD = 10000
Current Scene
xCurrent = 800 ( + Width Res. = 800 + 1024 = 1824)
yCurrent = 400 ( + Height Res. = 400 + 768 =... )
Far Sprite
xSprite = 7000
ySprite = 3000
什么是“计算”音频音量(可能还有左/右声像声道比率)的好算法? 提前致谢!
最佳答案
总卷数
- 有几种降低音量的方法。例如。您可以使用线性阻尼函数,例如
volume = max( 0, max_volume - max_volume/max_distance * distance )
,或者使用反距离衰减函数,例如volume = min( max_volume,最大体积/距离)
。
余额比率
- 同样,有多种方法可以实现足够的功能。在您的情况下,您可以说,如果对象位于或超出屏幕左边界,则向左平移,如果对象位于或超出右屏幕边界,则向右平移,否则使用插值函数,例如
balance = (object_x-camera_x)/screen_half_width
值介于 -1:左、+1:右和 0:中心之间。
当组合这些方法时,您必须考虑适合您的情况的方法:例如,仅在对象超出屏幕边界时才衰减音量,无论如何...
关于根据距离 (x,y) 设置适当的 "audio"音量的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4099393/