gpt4 book ai didi

c++ - 太空射击游戏中的 3D 音效

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:46 30 4
gpt4 key购买 nike

我正在尝试为我的太空射击游戏实现 3d 声音系统。我已准备好一切(在每一侧播放不同音量的声音等)但我找不到正确的公式来计算每一侧的正确音量。

一般的想法是,每次玩家(飞船)杀死一个敌人(摄像机总是在飞船的顶部),都会听到正确的左右音量的爆炸声。所以如果敌人在船的右边,那么右边的 channel 会听到更多,左边的情况也是如此。

所以我有

vector ship
vector enemie

playSound(left ? ,right ?)

游戏引擎是如何计算左右声道的?

最佳答案

终于解决了。我使用了类似于 Ameoo 所说的东西。

这里是:

void Play3D(int id,vector3d ship,vector3d pos,float arenaWidth,float power)
{
float disright=calculate_distance(ship.x+0.2f,ship.y,pos.x,pos.y);
float disleft=calculate_distance(ship.x-0.2f,ship.y,pos.x,pos.y);
sf.Play(2,1-disleft/arenaWidth*power,1-disright/arenaWidth*power);
}

关于c++ - 太空射击游戏中的 3D 音效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12561887/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com