コード例 #1
0
        public static void Update()
        {
            if (m_fadeSound != null)
            {
                m_fadeSound.Volume = MathUtils.Min(m_fadeSound.Volume - 0.33f * Volume * Time.FrameDuration, Volume);
                if (m_fadeSound.Volume <= 0f)
                {
                    m_fadeSound.Dispose();
                    m_fadeSound = null;
                }
            }
            if (m_sound != null && Time.FrameStartTime >= m_fadeStartTime)
            {
                m_sound.Volume = MathUtils.Min(m_sound.Volume + 0.33f * Volume * Time.FrameDuration, Volume);
            }
            if (m_currentMix == Mix.None || Volume == 0f)
            {
                StopMusic();
            }
            else if (m_currentMix == Mix.Menu && (Time.FrameStartTime >= m_nextSongTime || !IsPlaying))
            {
                float startPercentage = IsPlaying ? m_random.Float(0f, 0.75f) : 0f;
                switch (m_random.Int(0, 5))
                {
                case 0:
                    PlayMusic("Music/NativeAmericanFluteSpirit", startPercentage);
                    break;

                case 1:
                    PlayMusic("Music/AloneForever", startPercentage);
                    break;

                case 2:
                    PlayMusic("Music/NativeAmerican", startPercentage);
                    break;

                case 3:
                    PlayMusic("Music/NativeAmericanHeart", startPercentage);
                    break;

                case 4:
                    PlayMusic("Music/NativeAmericanPeaceFlute", startPercentage);
                    break;

                case 5:
                    PlayMusic("Music/NativeIndianChant", startPercentage);
                    break;
                }
                m_nextSongTime = Time.FrameStartTime + (double)m_random.Float(40f, 60f);
            }
        }
コード例 #2
0
 public override void Dispose()
 {
     base.Dispose();
     if (streamingSound != null)
     {
         streamingSound.Dispose();
     }
 }