コード例 #1
0
ファイル: Sound.cs プロジェクト: JISyed/jis-dpu-gd2-airdrone
        static void apply3Daudio(Audio3DCue a3dcue)
        {
            AudioEmitter emit = new AudioEmitter();
            Matrix mat;

            // Compute the emitter: MUST BE adjused in v0.1.0
            mat = a3dcue.Source.WorldMat;
            emit.Position = mat.Translation;
            emit.Up = mat.Up;
            emit.Forward = mat.Forward;
            emit.Velocity = Vector3.Zero;

            a3dcue.cue.Apply3D(listen, emit);
        }
コード例 #2
0
ファイル: Sound.cs プロジェクト: JISyed/jis-dpu-gd2-airdrone
        /// <summary>
        /// Plays a cue using 3D effects (assuming the cue has an associated runtime parameter control)
        /// </summary>
        /// <param name="cuename"></param>
        /// <param name="emmitterObject"></param>
        /// <returns></returns>
        public static Cue Play3DCue(string cuename, GameObject emmitterObject)
        {
            // init the datastructures on first call
            if (mActiveCueList == null)
            {
                mActiveCueList = new List<Audio3DCue>();
                mCueStack = new Stack<Audio3DCue>();
                listen = new AudioListener();
            }

            Audio3DCue new3DCue;

            if (mCueStack.Count > 0)
                new3DCue = mCueStack.Pop();	 // reuse an old cue
            else
                new3DCue = new Audio3DCue();	// get a new one

            new3DCue.cue = GetCue(cuename); // mPermSoundBank.GetCue(cuename);

            new3DCue.Source = emmitterObject;

            apply3Daudio(new3DCue);			 // adjsut the 3D settings
            new3DCue.cue.Play();				// start playign the cue
            mActiveCueList.Add(new3DCue);	   // Add to the update list

            return new3DCue.cue;
        }