Example #1
0
        public void ReduceVelocity()
        {
            // Prevent player from slowing down/speeding up while speed is different.
            if (!ExtensionFunctions.FloatCompare(_velocityScaler, 1))
            {
                return;
            }

            _velocityScaler = 1;
            if (_poseDuration > 0 && _boostDuration <= 0)
            {
                _velocityScaler = GameInfo.PlayerIncreasedVelocity;
                _boostDuration  = GameInfo.PlayerBoostDuration;
                MainScreen.Instance.PlayerDashed();
            }
            else
            {
                _velocityScaler = GameInfo.PlayerDamageVelocity;
                if (_playerGameObject.Position.Y < GameInfo.PlayerMinYPosition)
                {
                    return;
                }

                _playerGameObject.Position -= new Vector2(0, GameInfo.PlayerKnockBack);
                MainScreen.Instance.PlayerCollided();
            }
        }
Example #2
0
        private void HandleInput(float deltaTime)
        {
            int speedFactor = 1;

            if (_playerController.DidPlayerPressDash && _dashCooldown <= 0 &&
                ExtensionFunctions.FloatCompare(1, _velocityScaler) && _consecutivePoseCount < GameInfo.MaxPoseCount)
            {
                if (_currentPose)
                {
                    GameObject.Sprite.UpdateTexture(_pose1);
                    _currentPose = !_currentPose;
                }
                else
                {
                    GameObject.Sprite.UpdateTexture(_pose2);
                    _currentPose = !_currentPose;
                }

                _dashDuration          = GameInfo.PlayerDashDuration;
                _dashDirection         = _playerController.DashDirection;
                _poseDuration          = GameInfo.PlayerPoseDuration;
                _consecutivePoseCount += 1;
            }

            if (_dashDuration > 0)
            {
                if (_velocityScaler == 1)
                {
                    speedFactor = 3;
                }

                _playerGameObject.Position += _dashDirection * GameInfo.PlayerDashVelocity * deltaTime;
            }

            if (_playerController.State == PlayerController.ControllerState.Right)
            {
                _playerGameObject.Position += GameInfo.HorizontalVelocity * deltaTime * _velocityScaler * speedFactor;
            }
            else if (_playerController.State == PlayerController.ControllerState.Left)
            {
                _playerGameObject.Position -= GameInfo.HorizontalVelocity * deltaTime * _velocityScaler * speedFactor;
            }
            else if (_playerController.State == PlayerController.ControllerState.Up)
            {
                if (_playerGameObject.Velocity.Y < GameInfo.PlayerMinYVelocity)
                {
                    return;
                }

                _playerGameObject.Position     -= GameInfo.VerticalVelocity * deltaTime * _velocityScaler * speedFactor;
                _playerGameObject.Acceleration -= GameInfo.AccelerationChangeRate * deltaTime;
            }
            else if (_playerController.State == PlayerController.ControllerState.Down)
            {
                _playerGameObject.Position     += GameInfo.VerticalVelocity * deltaTime * _velocityScaler * speedFactor;
                _playerGameObject.Acceleration += GameInfo.AccelerationChangeRate * deltaTime;
            }
        }