예제 #1
0
        public void Update(IXnaGameTime gameTime, Focus focus)
        {
            gameTime.ThrowIfNull("gameTime");

            var updaterParameters = new UpdaterParameters(gameTime, focus);

            // Must call ToArray() because collection could be modified during iteration
            foreach (IUpdater updater in _updaters.ToArray())
            {
                updater.Update(updaterParameters);
            }
        }
예제 #2
0
        public void Update(IXnaGameTime gameTime, Focus focus)
        {
            gameTime.ThrowIfNull("gameTime");

            var updaterParameters = new UpdaterParameters(gameTime, focus);

            // Must call ToArray() because collection could be modified during iteration
            foreach (IUpdater updater in _updaters.ToArray())
            {
                updater.Update(updaterParameters);
            }
        }
        public void Update(UpdaterParameters parameters)
        {
            parameters.ThrowIfNull("parameters");

            _timedLerpHelper.Update(parameters.GameTime.TotalGameTime);

            _messageRendererState.Alpha = _timedLerpHelper.Value;
            _messageRendererState.Scale = _timedLerpHelper.Value;

            if (new FloatToInt(_timedLerpHelper.Value) == new FloatToInt(0f))
            {
                _completeDelegate();
            }
        }
        public void Update(UpdaterParameters parameters)
        {
            parameters.ThrowIfNull("parameters");

            _timedLerpHelper.Update(parameters.GameTime.TotalGameTime);

            _messageRendererState.Alpha = _timedLerpHelper.Value;
            _messageRendererState.Scale = _timedLerpHelper.Value;

            if (new FloatToInt(_timedLerpHelper.Value) == new FloatToInt(1f))
            {
                _completeDelegate(parameters.GameTime);
            }
        }
예제 #5
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);
        }
예제 #6
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);
        }
예제 #7
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;
            }
        }
        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();
        }
예제 #10
0
        public void Update(UpdaterParameters parameters)
        {
            parameters.ThrowIfNull("parameters");

            _keyboardStateHelper.Update();
        }