Ejemplo n.º 1
0
        public void DrawGridContent(SpriteBatch spriteBatch, Texture2D texture)
        {
            for (int x = 0; x < CountX; x++)
            {
                for (int y = 0; y < CountY; y++)
                {
                    GridEntity currentGrid = GridBox[x, y];

                    switch (currentGrid.Status)
                    {
                    case GridStatus.Mouseover:
                        spriteBatch.Draw(texture, currentGrid.Rect, MouseoverColor);
                        break;

                    case GridStatus.Occupied:
                        spriteBatch.Draw(texture, currentGrid.Rect, OccupiedColor);
                        break;

                    case GridStatus.Vacant:
                        spriteBatch.Draw(texture, currentGrid.Rect, AreaColor);
                        break;

                    case GridStatus.Selected:
                        spriteBatch.Draw(texture, currentGrid.Rect, currentGrid.Color);
                        break;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private static void InitializeGridDataStructure()
        {
            GridRect = new Rectangle(OffsetX + BorderLineWidth, OffsetY + BorderLineWidth, GridSheetWidth, GridSheetHeight);
            GridBox  = new GridEntity[CountX, CountY];

            for (int y = 0; y < CountY; y++)
            {
                for (int x = 0; x < CountX; x++)
                {
                    int       gridLocalMinX = GridSize * x + OffsetX;
                    int       gridLocalMinY = GridSize * y + OffsetY;
                    Rectangle gridRect      = new Rectangle(gridLocalMinX + BorderLineWidth, gridLocalMinY + BorderLineWidth, GridSize, GridSize);
                    GridBox[x, y] = new GridEntity(gridRect, GridBoxType.None, GridStatus.Vacant, false, false);
                }
            }
        }
Ejemplo n.º 3
0
 public void DrawMouseAction(Point pos, MouseState state, Color color)
 {
     if (mouseWithinGrid(pos))
     {
         if (state.LeftButton == ButtonState.Pressed)
         {
             Point      targetIndex = mousePosDetector.getIntersectIndex(pos);
             GridEntity targetGrid  = GridBox[targetIndex.X, targetIndex.Y];
             targetGrid.Status = GridStatus.Selected;
             targetGrid.Color  = color;
         }
         else if (state.RightButton == ButtonState.Pressed)
         {
             Point      targetIndex = mousePosDetector.getIntersectIndex(pos);
             GridEntity targetGrid  = GridBox[targetIndex.X, targetIndex.Y];
             targetGrid.Status = GridStatus.Vacant;
         }
     }
 }