示例#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;
        }
示例#2
0
        public override bool GoToAir()
        {
            //return true if we had to switch stuff to be in air
            if ((MovementState == CharacterMovementStates.Idle ||
                 MovementState == CharacterMovementStates.Pushing ||
                 MovementState == CharacterMovementStates.Walking) && !IsInAir)
            {
                MovementState = CharacterMovementStates.Jumping;
                IsInAir       = true;

                if (IsFacingRight)
                {
                    character.SetSprite(SpriteFactory.GetCharacterJumpingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Right, IsCarryingObject));
                }
                else
                {
                    character.SetSprite(SpriteFactory.GetCharacterJumpingSprite(Constants.CHARACTER_TYPE_1, SpriteOrientation.Left, IsCarryingObject));
                }
                return(true);
            }
            return(false);
        }