public void Update(UpdaterParameters parameters) { parameters.ThrowIfNull("parameters"); if (_worldInstance.WorldTime.Paused || _worldInstance.PlayerInput.Suspended || parameters.Focus != Focus.Player) { return; } _keyboardRepeatHelper.InitialInterval = TimeSpan.FromMilliseconds(Constants.PlayerRenderer.Input.InitialInterval.TotalMilliseconds / _worldInstance.WorldTime.Speed); _keyboardRepeatHelper.RepeatingInterval = TimeSpan.FromMilliseconds(Constants.PlayerRenderer.Input.RepeatingInterval.TotalMilliseconds / _worldInstance.WorldTime.Speed); _keyboardStateHelper.Update(); TimeSpan totalWorldTime = _worldInstance.WorldTime.Total; if (!_keyboardRepeatHelper.IntervalElapsed(totalWorldTime) || totalWorldTime - _lastKeyDownTotalWorldTime < _keyboardRepeatHelper.RepeatingInterval) { return; } PlayerMoveCommand command = null; switch (_keyboardStateHelper.LastKeyDown) { case Constants.PlayerRenderer.Input.MoveUpKey: command = Commands.PlayerMove(MoveDirection.Up); break; case Constants.PlayerRenderer.Input.MoveDownKey: command = Commands.PlayerMove(MoveDirection.Down); break; case Constants.PlayerRenderer.Input.MoveLeftKey: command = Commands.PlayerMove(MoveDirection.Left); break; case Constants.PlayerRenderer.Input.MoveRightKey: command = Commands.PlayerMove(MoveDirection.Right); break; } _lastKeyDownTotalWorldTime = totalWorldTime; _worldInstance.CurrentCommandQueue.EnqueueCommand(command); }
public void Update(UpdaterParameters parameters) { parameters.ThrowIfNull("parameters"); _lastGameTime = parameters.GameTime; if (parameters.Focus != Focus.Message) { return; } _answerKeyboardStateHelper.Update(); _scrollKeyboardStateHelper.Update(); switch (_scrollKeyboardStateHelper.LastKeyDown) { case TextAdventure.Xna.Constants.MessageRenderer.Input.ScrollUpKey: _messageRendererState.ScrollPosition -= TextAdventure.Xna.Constants.MessageRenderer.ScrollStep; break; case TextAdventure.Xna.Constants.MessageRenderer.Input.ScrollDownKey: _messageRendererState.ScrollPosition += TextAdventure.Xna.Constants.MessageRenderer.ScrollStep; break; case TextAdventure.Xna.Constants.MessageRenderer.Input.HomeKey: _messageRendererState.ScrollPosition = 0f; break; case TextAdventure.Xna.Constants.MessageRenderer.Input.EndKey: _messageRendererState.ScrollPosition = Single.MaxValue; break; case TextAdventure.Xna.Constants.MessageRenderer.Input.PageUpKey: _messageRendererState.ScrollPosition -= _messageRendererState.VisibleHeight; break; case TextAdventure.Xna.Constants.MessageRenderer.Input.PageDownKey: _messageRendererState.ScrollPosition += _messageRendererState.VisibleHeight; break; } }
public void Update(UpdaterParameters parameters) { parameters.ThrowIfNull("parameters"); _keyboardStateHelper.Update(); }