示例#1
0
        public override void HandleMoveRightInput()
        {
            if (MovementState == CharacterMovementStates.Idle && IsFacingRight)
            {
                MovementState = CharacterMovementStates.Walking;
                character.SetSprite(SpriteFactory.GetCharacterWalkingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject));
            }
            else if (MovementState == CharacterMovementStates.Walking && IsCollidingWithPushableObject)
            {
                MovementState = CharacterMovementStates.Pushing;
                character.SetSprite(SpriteFactory.GetCharacterPushingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right));
            }
            else if (MovementState == CharacterMovementStates.Idle && !IsFacingRight)
            {
                MovementState = CharacterMovementStates.Idle;
                character.SetSprite(SpriteFactory.GetCharacterIdleSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject));
            }
            else if (MovementState == CharacterMovementStates.Walking && !IsFacingRight)
            {
                MovementState = CharacterMovementStates.Idle;
                character.SetSprite(SpriteFactory.GetCharacterIdleSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject));
            }
            else if (MovementState == CharacterMovementStates.Pushing && IsFacingRight)
            {
                MovementState = CharacterMovementStates.Pushing;
            }
            else if (MovementState == CharacterMovementStates.Pushing && !IsFacingRight)
            {
                MovementState = CharacterMovementStates.Idle;
                character.SetSprite(SpriteFactory.GetCharacterIdleSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject));
            }
            else if (MovementState == CharacterMovementStates.Jumping)
            {
                MovementState = CharacterMovementStates.Jumping;
                character.SetSprite(SpriteFactory.GetCharacterJumpingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject));
                IsInAir = true;
            }

            IsFacingRight = true;
        }