示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
                }
            }
        }