예제 #1
0
        private void AddFade(AudioClipModel clip, float startVolume, float endVolume, float duration)
        {
            TryRemoveFade(clip);
            var fade = new AudioFadeState(clip, startVolume, endVolume, duration);

            _activeAudioFades.Add(fade);
        }
예제 #2
0
        public void Update(GameTime gameTime)
        {
            float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (FadeState == AudioFadeState.In)
            {
                BaseInstance.Volume = Math.Min(1, BaseInstance.Volume + (elapsed * FadeSpeed));
                if (BaseInstance.Volume == 1)
                {
                    FadeState = AudioFadeState.Normal;
                }
            }
            else if (FadeState == AudioFadeState.Out)
            {
                BaseInstance.Volume = Math.Max(0, BaseInstance.Volume - (elapsed * FadeSpeed));
                if (BaseInstance.Volume == 0)
                {
                    FadeState = AudioFadeState.Normal;
                    if (BaseInstance.State != SoundState.Stopped)
                    {
                        BaseInstance.Stop();
                    }
                }
            }
        }
예제 #3
0
 public void FadeIn()
 {
     FadeState = AudioFadeState.In;
     if (BaseInstance.State != SoundState.Playing)
     {
         BaseInstance.Play();
     }
 }
예제 #4
0
 public void FadeOut()
 {
     FadeState = AudioFadeState.Out;
 }