Platform SDK: DirectX |
ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectSound C/C++ チュートリアル」を参照すること。
ここまでで 3D サウンド バッファが 2 つのオブジェクトで表された。バッファの標準機能を備えた DirectSoundBuffer オブジェクトと、バッファの 3D プロパティを制御する DirectSound3DBuffer オブジェクトである。
このバッファを再生するには、2D バッファの場合と同じようにする。チュートリアル 1 の「ステップ 3 : サウンドの再生」を参照すること。
バッファの 3D プロパティの変更は、再生中か否かにかかわらずいつでも行える。このサンプル アプリケーションでは、バッファを作成するときや、ユーザーが [Direction] スクロールバーやバッファを示す三角形を動かすのに応答して、プロパティが設定される。
バッファに対するサウンド コーンの方向は、[Direction] スクロールバーの Change プロシージャで設定される。
Private Sub scrlAngle_Change(i As Integer) Dim x As Single Dim z As Single '方向ベクトルを計算する。 '単位の度をラジアンに変換し、cos または sin を取得する。 x = 5 * Cos(3.141 * scrlAngle(0).Value / 180) z = 5 * Sin(3.141 * scrlAngle(0).Value / 180) 'グラフィックスを更新する。 DrawPositions If m_dsBuffer(i) Is Nothing Then Exit Sub m_ds3dBuffer(i).SetConeOrientation x, 0, z, DS3D_IMMEDIATE End Sub
このサンプルでは、ユーザーがマウスの左ボタンや右ボタンをクリックしたり、サウンドを表す三角形を移動することで、リスナーに対する相対的な 2 つのサウンドの位置を移動できる。サウンドの位置は、DirectSound3DBuffer.SetPosition メソッドで変更する。サンプルの UpdatePosition プロシージャを参照すること。