/// <summary> /// Отрисовывает активные клетки игрового поля. /// </summary> public void Draw(Graphics bitmapGraphics, BitmapCellsStorage bitmapCells) { foreach (Cell cell in field) { cell.Draw(bitmapGraphics, bitmapCells); } }
/// <summary> /// Отрисовывает изменившиеся клетки игрового поля. /// </summary> public void DrawChangedCells(Graphics bitmapGraphics, BitmapCellsStorage bitmapCells) { foreach (Cell cell in ListCellsForDraw) { cell.Draw(bitmapGraphics, bitmapCells); } }
/// <summary> /// Отрисовка клетки в заданной точке. /// <param name="p">Положение клетки.</param> /// </summary> public void Draw(Graphics g, BitmapCellsStorage b, Point p) { Bitmap bm = b.GetBitmap(Status); // Координаты точки для отрисовки p.X *= bm.Width; p.Y *= bm.Height; g.DrawImage(bm, p); }
/// <summary> /// Перерисовывает все клетки игрового поля(любого типа). /// </summary> /// <param name="bitmapGraphics"></param> /// <param name="bitmapCells"></param> /// <param name="rect">Ограничивающий прямоугольник в кординатах игрового поля.</param> public void Draw(Graphics bitmapGraphics, BitmapCellsStorage bitmapCells, Rectangle rect) { Bitmap bmNoCell = bitmapCells.GetBitmap(StatusCell.No); for (int x = rect.X; x < (rect.X + rect.Width); x++) { for (int y = rect.Y; y < (rect.Y + rect.Height); y++) { Cell cell = field[x, y]; if (cell != null) { cell.Draw(bitmapGraphics, bitmapCells); } else { bitmapGraphics.DrawImage(bmNoCell, x * bmNoCell.Width, y * bmNoCell.Height); } } } }
/// <summary> /// Перерисовывает всё игровое поле. /// </summary> /// <param name="bitmapGraphics"></param> /// <param name="bitmapCells"></param> public void DrawAll(Graphics bitmapGraphics, BitmapCellsStorage bitmapCells) => Draw(bitmapGraphics, bitmapCells, Rectangle);
/// <summary> /// Отрисовывает клетку /// </summary> /// <param name="g"></param> /// <param name="b"></param> public void Draw(Graphics g, BitmapCellsStorage b) => Draw(g, b, Location);