/// <summary> /// Returns an effect appropriate to the supplied vector which either does /// nothing or flips the beekeeper horizontally. /// </summary> /// <param name="movementDirection">A vector depicting the beekeeper's /// movement.</param> /// <returns>A sprite effect that should be applied to the beekeeper.</returns> private SpriteEffects GetSpriteEffect(Vector2 movementDirection) { // Checks if the user input is in the thumb stick area if (VirtualThumbsticks.LeftThumbstickCenter.HasValue && ThumbStickArea.Contains((int)VirtualThumbsticks.LeftThumbstickCenter.Value.X, (int)VirtualThumbsticks.LeftThumbstickCenter.Value.Y)) { // If beekeeper is facing left if (movementDirection.X < 0) { lastEffect = SpriteEffects.FlipHorizontally; } else if (movementDirection.X > 0) { lastEffect = SpriteEffects.None; } } return(lastEffect); }
/// <summary> /// Returns movement information according to the current virtual thumbstick input. /// </summary> /// <param name="tempDirection">Enum describing the inpot direction.</param> /// <param name="smokeAjustment">Adjustment to smoke position according to input direction.</param> private void DetermineDirection(ref WalkingDirection tempDirection, ref Vector2 smokeAjustment) { if (!VirtualThumbsticks.LeftThumbstickCenter.HasValue) { return; } Rectangle touchPointRectangle = new Rectangle((int)VirtualThumbsticks.LeftThumbstickCenter.Value.X, (int)VirtualThumbsticks.LeftThumbstickCenter.Value.Y, 1, 1); if (ThumbStickArea.Intersects(touchPointRectangle)) { if (Math.Abs(VirtualThumbsticks.LeftThumbstick.X) > Math.Abs(VirtualThumbsticks.LeftThumbstick.Y)) { DetermineDirectionDominantX(ref tempDirection, ref smokeAjustment); } else { DetermineDirectionDominantY(ref tempDirection, ref smokeAjustment); } } }