public void Update(GameTime gameTime) { _keyboardState = Keyboard.GetState(); _time += gameTime.ElapsedGameTime; if (_keyboardState.IsKeyDown(Keys.Space) && _oldKeyboardState.IsKeyUp(Keys.Space) && _skippable) NextImage(); switch (_imageState) { case TitleImageState.FadingIn: if (_time >= _fadeSpeed) { _imageState = TitleImageState.FullAlpha; _time = TimeSpan.Zero; _currentAlpha = 1; } else _currentAlpha = MathHelper.Lerp(0, 1, (float)_time.Ticks / (float)_fadeSpeed.Ticks); break; case TitleImageState.FullAlpha: if (_time >= _displayDuration) { _imageState = TitleImageState.FadingOut; _time = TimeSpan.Zero; } break; case TitleImageState.FadingOut: if (_time >= _fadeSpeed) NextImage(); else _currentAlpha = MathHelper.Lerp(1, 0, (float)_time.Ticks / (float)_fadeSpeed.Ticks); break; } _oldKeyboardState = _keyboardState; }
private void NextImage() { _time = TimeSpan.Zero; _currentImage++; _currentAlpha = 0; _imageState = TitleImageState.FadingIn; if (_currentImage >= _images.Count) Finished = true; }