コード例 #1
0
 /// <summary>
 /// Detecting colision of brick
 /// </summary>
 /// <param name="xPosition">x brick position on board</param>
 /// <param name="yPosition">y brick position on board</param>
 /// <param name="code">brick code</param>
 /// <returns>true is colision detected, false otherwise</returns>
 private bool DetectColision(int xPosition, int yPosition, int code)
 {
     for (int i = 0; i < BrickConsts.BrickSize; i++)
     {
         for (int j = 0; j < BrickConsts.BrickSize; j++)
         {
             if (BitHelper.GetBitBool(code,
                                      i * BrickConsts.BrickSize + j))
             {
                 try
                 {
                     if (yPosition + j < 0 || yPosition + j >= BoardConsts.BoardWidth ||
                         BoardDataBuffer[(xPosition + i) * BoardConsts.BoardWidth + yPosition + j] == FieldState.Filled)
                     {
                         return(true);
                     }
                 }
                 catch (IndexOutOfRangeException)
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
コード例 #2
0
        /// <summary>
        /// Drawing game info fields
        /// </summary>
        /// <param name="dc"></param>
        private void DrawGameInfo(DrawingContext dc)
        {
            int nextBrick = controller.GameInfo.NextBrick;

            for (int i = 0; i < BrickConsts.BrickSize; i++)
            {
                for (int j = 0; j < BrickConsts.BrickSize; j++)
                {
                    dc.DrawRectangle(
                        BitHelper.GetBitBool(nextBrick, i * BrickConsts.BrickSize + j) ?
                        WindowConsts.FilledFieldBrush : WindowConsts.EmptyFieldBrush
                        , WindowConsts.StandardPen,
                        WindowConsts.xInfoBeginPoint + j * WindowConsts.BrickInfoOffset,
                        WindowConsts.yInfoBeginPoint + i * WindowConsts.BrickInfoOffset,
                        WindowConsts.BrickInfoSize, WindowConsts.BrickInfoSize);
                }
            }

            dc.DrawText(controller.GameInfo.Score.ToString(),
                        ResourcesManager.GameFont, Color.Black,
                        WindowConsts.xInfoScorePoint, WindowConsts.yInfoScorePoint);
            dc.DrawText(controller.GameInfo.Level.ToString(),
                        ResourcesManager.GameFont, Color.Black,
                        WindowConsts.xInfoLevelPoint, WindowConsts.yInfoLevelPoint);
        }
コード例 #3
0
 /// <summary>
 /// Helper function setting brick-shape fields to desired state
 /// </summary>
 /// <param name="fieldState"></param>
 private void FillBrickSpace(FieldState fieldState)
 {
     for (int i = 0; i < BrickConsts.BrickSize; i++)
     {
         for (int j = 0; j < BrickConsts.BrickSize; j++)
         {
             if (BitHelper.GetBitBool(currentBrick.BrickCode,
                                      i * BrickConsts.BrickSize + j))
             {
                 BoardDataBuffer[(currentBrick.xPosition + i) * BoardConsts.BoardWidth + currentBrick.yPosition + j] = fieldState;
             }
         }
     }
 }