2

スペース シューティング ゲームに 3D サウンド システムを実装しようとしています。私はすべての準備ができています(両側で異なる音量でサウンドを再生するなど)が、両側の正しい音量を計算するための正しい式を見つけることができません。

一般的な考え方は、プレイヤー(船)が敵を殺すたびに(カメラは常に船の上部にあります)、爆発が正しい左右の音量で聞こえるということです。したがって、敵が船の右側にいる場合、左側の場合と同じように、右側のチャネルがより多く聞こえます。

ので、私は持っています

vector ship
vector enemie

playSound(left ? ,right ?)

ゲーム エンジンはどのように左右のチャンネルを計算しますか?

4

1 に答える 1

1

最後に私はそれを解決しました。私はアメオが言ったことに似たものを使いました。

ここにあります:

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);
}
于 2012-09-24T21:47:37.390 に答える