コード例 #1
0
ファイル: Dog.cs プロジェクト: Gevil/Projects
        /// <summary>
        /// Updates the position of the dog, and plays sounds.
        /// </summary>
        public override void Update(GameTime gameTime, AudioManager audioManager)
        {
            // Set the entity to a fixed position.
            Position = new Vector3(0, 0, -4000);
            Forward = Vector3.Forward;
            Up = Vector3.Up;
            Velocity = Vector3.Zero;

            // If the time delay has run out, start or stop the looping sound.
            // This would normally go on forever, but we stop it after a six
            // second delay, then start it up again after four more seconds.
            timeDelay -= gameTime.ElapsedGameTime;

            if (timeDelay < TimeSpan.Zero)
            {
                if (activeSound == null)
                {
                    // If no sound is currently playing, trigger one.
                    activeSound = audioManager.Play3DSound("DogSound", true, this);

                    timeDelay += TimeSpan.FromSeconds(6);
                }
                else
                {
                    // Otherwise stop the current sound.
                    activeSound.Stop(false);
                    activeSound = null;

                    timeDelay += TimeSpan.FromSeconds(4);
                }
            }
        }
コード例 #2
0
ファイル: Dog.cs プロジェクト: rejurime/MonoGame-Samples
        /// <summary>
        /// Updates the position of the dog, and plays sounds.
        /// </summary>
        public override void Update(GameTime gameTime, AudioManager audioManager)
        {
            // Set the entity to a fixed position.
            Position = new Vector3(0, 0, -4000);
            Forward  = Vector3.Forward;
            Up       = Vector3.Up;
            Velocity = Vector3.Zero;

            // If the time delay has run out, start or stop the looping sound.
            // This would normally go on forever, but we stop it after a six
            // second delay, then start it up again after four more seconds.
            timeDelay -= gameTime.ElapsedGameTime;

            if (timeDelay < TimeSpan.Zero)
            {
                if (activeSound == null)
                {
                    // If no sound is currently playing, trigger one.
                    activeSound = audioManager.Play3DSound("DogSound", true, this);

                    timeDelay += TimeSpan.FromSeconds(6);
                }
                else
                {
                    // Otherwise stop the current sound.
                    activeSound.Stop(false);
                    activeSound = null;

                    timeDelay += TimeSpan.FromSeconds(4);
                }
            }
        }
コード例 #3
0
ファイル: Cat.cs プロジェクト: Nailz/MonoGame-Samples
        /// <summary>
        /// Updates the position of the cat, and plays sounds.
        /// </summary>
        public override void Update(GameTime gameTime, AudioManager audioManager)
        {
            // Move the cat in a big circle.
            double time = gameTime.TotalGameTime.TotalSeconds;

            float dx = (float)-Math.Cos(time);
            float dz = (float)-Math.Sin(time);

            Vector3 newPosition = new Vector3(dx, 0, dz) * 6000;

            // Update entity position and velocity.
            Velocity = newPosition - Position;
            Position = newPosition;
            if (Velocity == Vector3.Zero)
                Forward = Vector3.Forward;
            else
                Forward = Vector3.Normalize(Velocity);

            Up = Vector3.Up;

            // If the time delay has run out, trigger another single-shot sound.
            timeDelay -= gameTime.ElapsedGameTime;

            if (timeDelay < TimeSpan.Zero)
            {
                // For variety, randomly choose between three slightly different
                // variants of the sound (CatSound0, CatSound1, and CatSound2).
                string soundName = "CatSound" + random.Next(3);

                audioManager.Play3DSound(soundName, false, this);

                timeDelay += TimeSpan.FromSeconds(1.25f);
            }
        }
コード例 #4
0
ファイル: Cat.cs プロジェクト: rejurime/MonoGame-Samples
        /// <summary>
        /// Updates the position of the cat, and plays sounds.
        /// </summary>
        public override void Update(GameTime gameTime, AudioManager audioManager)
        {
            // Move the cat in a big circle.
            double time = gameTime.TotalGameTime.TotalSeconds;

            float dx = (float)-Math.Cos(time);
            float dz = (float)-Math.Sin(time);

            Vector3 newPosition = new Vector3(dx, 0, dz) * 6000;

            // Update entity position and velocity.
            Velocity = newPosition - Position;
            Position = newPosition;
            if (Velocity == Vector3.Zero)
            {
                Forward = Vector3.Forward;
            }
            else
            {
                Forward = Vector3.Normalize(Velocity);
            }

            Up = Vector3.Up;

            // If the time delay has run out, trigger another single-shot sound.
            timeDelay -= gameTime.ElapsedGameTime;

            if (timeDelay < TimeSpan.Zero)
            {
                // For variety, randomly choose between three slightly different
                // variants of the sound (CatSound0, CatSound1, and CatSound2).
                string soundName = "CatSound" + random.Next(3);

                audioManager.Play3DSound(soundName, false, this);

                timeDelay += TimeSpan.FromSeconds(1.25f);
            }
        }