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; }
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); }