Example #1
0
        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);
        }
Example #2
0
        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;
            }
        }
Example #3
0
        public void Update(UpdaterParameters parameters)
        {
            parameters.ThrowIfNull("parameters");

            _keyboardStateHelper.Update();
        }