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()); }
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); }
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); }