public void AndGivenTheLeftThumbStickIsFullyLeft()
        {
            var gamePadState = ObjectMother.Input.GamePadStates.Default
                               .WithLeftThumbstickFullyLeft()
                               .Build();

            _state = ObjectMother.Core.ShooterGameInputStates.Default
                     .WithCurrentGamePadState(gamePadState)
                     .Build();
        }
Пример #2
0
        private void UpdateVelocity(ShooterGameInputState gameInputState)
        {
            var dx = 0.0f;
            var dy = 0.0f;

            dx += gameInputState.CurrentGamePadState.ThumbSticks.Left.X;
            dy -= gameInputState.CurrentGamePadState.ThumbSticks.Left.Y;

            if (gameInputState.CurrentKeyboardState.IsKeyDown(Keys.Left) ||
                gameInputState.CurrentGamePadState.DPad.Left == ButtonState.Pressed)
            {
                dx--;
            }
            if (gameInputState.CurrentKeyboardState.IsKeyDown(Keys.Right) ||
                gameInputState.CurrentGamePadState.DPad.Right == ButtonState.Pressed)
            {
                dx++;
            }

            if (gameInputState.CurrentKeyboardState.IsKeyDown(Keys.Up) ||
                gameInputState.CurrentGamePadState.DPad.Up == ButtonState.Pressed)
            {
                dy--;
            }
            if (gameInputState.CurrentKeyboardState.IsKeyDown(Keys.Down) ||
                gameInputState.CurrentGamePadState.DPad.Down == ButtonState.Pressed)
            {
                dy++;
            }

            while (gameInputState.CurrentTouchPanelState.IsGestureAvailable)
            {
                var gesture = gameInputState.CurrentTouchPanelState.ReadGesture();
                if (gesture.GestureType == GestureType.FreeDrag)
                {
                    // TODO this will need to be sanitised
                    dx += gesture.Delta.X;
                    dy += gesture.Delta.Y;
                }
            }

            if (gameInputState.CurrentMouseState.LeftButton == ButtonState.Pressed)
            {
                var mousePosition      = new Vector2(gameInputState.CurrentMouseState.X, gameInputState.CurrentMouseState.Y);
                var mousePositionDelta = mousePosition - Position;
                mousePositionDelta.Normalize();

                // TODO this will need to be sanitised
                dx += mousePositionDelta.X;
                dy += mousePositionDelta.Y;
            }

            _velocity = new Vector2(dx, dy);
        }
Пример #3
0
        private void UpdateEnemies(ShooterGameInputState input)
        {
            if (input.GameTime.TotalGameTime - _previousEnemySpawnTime > _enemySpawnTime)
            {
                _previousEnemySpawnTime = input.GameTime.TotalGameTime;
                AddEmemy();
            }

            foreach (var enemy in _enemies)
            {
                enemy.Update(input);
            }

            _enemies.RemoveWhere(x => !x.IsActive);
        }