Ejemplo n.º 1
0
 public override void draw(CanvasDrawEventArgs args)
 {
     for (int i = 0; i < VerticalBlocks + 1; i++)
     {
         args.DrawingSession.DrawLine(x(), y() + (float)(Tetrimino.Size.Height * i), x() + Width, y() + (float)(Tetrimino.Size.Height * i), Colors.Black);
     }
     for (int i = 0; i < HorizontalBlocks + 1; i++)
     {
         args.DrawingSession.DrawLine(x() + (float)(Tetrimino.Size.Height * i), y(), x() + (float)(Tetrimino.Size.Height * i), y() + Height, Colors.Black);
     }
     for (int i = 0; i < Filled.GetLength(1); i++)
     {
         for (int j = 0; j < Filled.GetLength(0); j++)
         {
             if (Filled[j, i])
             {
                 args.DrawingSession.DrawImage(Tetrimino.Graphics[FilledColor[j, i]], j * Tetrimino.Size.Width + x(), i * Tetrimino.Size.Height + y());
             }
         }
     }
 }
Ejemplo n.º 2
0
        public override bool isCollision(float x, float y)
        {
            float boxX, boxY, boxW = (float)Tetrimino.Size.Width, boxH = (float)Tetrimino.Size.Height;

            for (int i = 0; i < Filled.GetLength(1); i++)
            {
                for (int j = 0; j < Filled.GetLength(0); j++)
                {
                    if (!Filled[j, i])
                    {
                        continue;
                    }
                    boxX = j * boxW;
                    boxY = i * boxH - boxH;
                    if (x >= boxX && x <= boxX + boxW && y >= boxY && y <= boxY + boxH)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }