예제 #1
0
 public void HandleInput(
     Vector2 touchPoint,
     GameOrchestrator orchestrator)
 {
     if (_rateMeDialog.ShouldShowDialog)
     {
         _rateMeDialog.HandleInput(touchPoint);
     }
     else
     {
         if (_playDrawingInfos.HitBox((int)_playTextSize.X, (int)_playTextSize.Y)
             .Contains(touchPoint))
         {
             orchestrator.SetGameState();
         }
         else if (_fartDrawingInfos.HitBox((int)_fartTextSize.X, (int)_fartTextSize.Y)
                  .Contains(touchPoint))
         {
             _soundManager.PlayFart();
         }
         else if (_scoreDrawingInfos.HitBox((int)_scoreTextSize.X, (int)_scoreTextSize.Y)
                  .Contains(touchPoint))
         {
             orchestrator.SetScoreState();
         }
         else if (_aboutDrawingInfos.HitBox((int)_aboutTextSize.X, (int)_aboutTextSize.Y)
                  .Contains(touchPoint))
         {
             orchestrator.SetAboutState();
         }
     }
 }
        /// <summary>
        /// It draws a <see cref="Sprite"/> in a given position
        /// </summary>
        /// <param name="spriteBatch"></param>
        /// <param name="sprite"></param>
        /// <param name="spatialObject"></param>
        /// <param name="isDebugModeEnabled">It draws a visible boxing rectangle</param>
        public static void Draw(
            this SpriteBatch spriteBatch,
            Sprite sprite,
            DrawingInfos spatialObject,
            bool isDebugModeEnabled = false)
        {
            spriteBatch.Draw(
                sprite.Sheet,
                spatialObject.Position,
                sprite.SourceRectangle,
                spatialObject.OverlayColor,
                spatialObject.Rotation,
                spatialObject.Origin,
                spatialObject.Scale,
                spatialObject.IsFlipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None,
                spatialObject.LayerDepth);

            if (isDebugModeEnabled)
            {
                DrawRectangle(
                    spriteBatch,
                    spatialObject.HitBox(sprite.Width, sprite.Height),
                    _hitBoxColor);
            }
        }