private void NextSongDirect() { if (InitErrorState) { return; } if (_nextSet != null) { _currentSet = _nextSet; _nextSet = null; _playIndex = 0; } else { _playIndex++; } if (_currentSet == null) { _state = MPState.Stopped; return; } if (_playIndex >= _currentSet.Length) { if (_loopSet) { _playIndex = 0; } else { _state = MPState.Stopped; return; } } if (_playIndex < _currentSet.Length) { if (FloatMath.IsZero(_fadeChange)) { MediaPlayer.Volume = 1; MediaPlayer.Stop(); PlaySongInPlayer(_currentSet[_playIndex]); _state = MPState.Play; } else { MediaPlayer.Volume = 0; MediaPlayer.Stop(); PlaySongInPlayer(_currentSet[_playIndex]); _fadeTime = 0f; _state = MPState.TransitionInFromSame; } } else { _state = MPState.Stopped; } }
protected void PlaySong(Song[] s, float fadeIn, float fadeOut, float fadeChange, bool loop = true) { if (InitErrorState) { return; } _fadeIn = fadeIn; _fadeOut = fadeOut; _fadeChange = fadeChange; if (_state == MPState.Play) { _state = MPState.TransitionOut; _fadeTime = 0f; _nextSet = s; } else if (s.Any()) { MediaPlayer.Volume = 0f; PlaySongInPlayer(s[0]); _state = MPState.TransitionInFromNew; _fadeTime = 0f; _playIndex = 0; _currentSet = s; } else { _state = MPState.Stopped; } }
public static void initMulti() { currentMPGameState = MPState.player1Turn; currentGameMode = GameMode.multiPlayer; turnChangeTime = 0.0f; blueTurnTexture = Resources.Load <Texture2D> ("blueTurn"); redTurnTexture = Resources.Load <Texture2D> ("redTurn"); }
public void StopSong() { if (_state != MPState.Stopped) { _state = MPState.TransitionOut; _currentSet = null; _fadeTime = 0f; } }
public void SkipSong() { if (_state == MPState.Stopped) { NextSongDirect(); } else { _state = MPState.TransitionOut; _fadeTime = 0f; } }
private void UpdateMusic(SAMTime gameTime) { if (MediaPlayer.IsMuted != IsMusicMuted) { MediaPlayer.IsMuted = IsMusicMuted; } switch (_state) { case MPState.Stopped: if (MediaPlayer.State == MediaState.Playing) { MediaPlayer.Stop(); } break; case MPState.Play: if (MediaPlayer.State != MediaState.Playing) { NextSongDirect(); } break; case MPState.TransitionOut: _fadeTime += gameTime.ElapsedSeconds; if (_fadeTime > _fadeOut) { NextSongDirect(); } else { MediaPlayer.Volume = 1 - (_fadeTime / _fadeOut); } break; case MPState.TransitionInFromNew: _fadeTime += gameTime.ElapsedSeconds; if (_fadeTime > _fadeIn) { _state = MPState.Play; MediaPlayer.Volume = 1f; } else { MediaPlayer.Volume = (_fadeTime / _fadeIn); } break; case MPState.TransitionInFromSame: _fadeTime += gameTime.ElapsedSeconds; if (_fadeTime > _fadeChange) { _state = MPState.Play; MediaPlayer.Volume = 1f; } else { MediaPlayer.Volume = (_fadeTime / _fadeChange); } break; default: throw new ArgumentOutOfRangeException(); } }