Пример #1
0
        public BGMState Play(ISoundPlayable playable, String bgm, float fadeInTime, float delayedIn, float delayedOut, bool isLoop)
        {
            playable.Play(bgm, delayedIn, delayedOut, isLoop);

            if (fadeInTime > 0.0f)
            {
                playable.SetVolume(0.0f);
                return(new BGMStateFadeIn(fadeInTime));
            }
            playable.SetVolume(0.75f);
            return(new BGMStatePlaying());
        }
Пример #2
0
        public BGMState Update(ISoundPlayable playable, float deltaTime)
        {
            elapsedTime += deltaTime;

            if (elapsedTime >= fadeInTime)
            {
                playable.SetVolume(0.75f);

                return(new BGMStatePlaying());
            }
            else
            {
                playable.SetVolume(elapsedTime / fadeInTime * 0.75f);
            }

            return(this);
        }
Пример #3
0
        public BGMState Update(ISoundPlayable playable, float deltaTime)
        {
            elapsedTime += deltaTime;

            if (elapsedTime >= fadeOutTime)
            {
                playable.SetVolume(0.0f);
                playable.Stop();
                return(new BGMStateWait());
            }
            else
            {
                playable.SetVolume(1.0f - elapsedTime / fadeOutTime);
            }

            return(this);
        }