public void draw(GameBoardData data) { canvas.Children.Clear(); MinoDrawSize = canvas.Width / data.Width; Rectangle rect = new Rectangle { Stroke = Brushes.Black, StrokeThickness = 2, Height = canvas.Height, Width = canvas.ActualWidth, Fill = Brushes.Black }; Canvas.SetLeft(rect, 0); Canvas.SetTop(rect, 0); canvas.Children.Add(rect); data.FallingPolyomino.drawPolyomino(canvas, data.FallingPolyominoLocation, MinoDrawSize, false); data.FallingPolyomino.drawPolyomino(canvas, data.getGhostPieceLocation(), minoDrawSize, true); //todo remove Ellipse e = new Ellipse { Fill = Brushes.Red, Height = 10, Width = 10 }; double x = data.FallingPolyominoLocation.X * minoDrawSize + minoDrawSize / 2 -5; double y = canvas.Height - minoDrawSize / 2 - 5; y -= minoDrawSize * data.FallingPolyominoLocation.Y; Canvas.SetLeft(e, x); Canvas.SetTop(e, y); canvas.Children.Add(e); foreach (Mino m in data.SettledMinos) { Vector2 v = m.v; m.drawMino(canvas, MinoDrawSize, false); } drawGridLines(canvas); }
internal void drawRight(Canvas accessoryCanvas, GameBoardData e) { accessoryCanvas.Children.Clear(); double holdCellWidth = 2 * accessoryCanvas.ActualWidth / 3; List<Polyomino> nexts = e.MyPieceDealer.peekNextPolyominos(5); double startNextsY = 0; for (int i = 0; i < 5; i++) { double x = (accessoryCanvas.ActualWidth - holdCellWidth) / 2; double y = startNextsY + i * holdCellWidth; Rectangle fill = new Rectangle { Stroke = Brushes.Black, StrokeThickness = 2, Height = holdCellWidth, Width = holdCellWidth, Fill = Brushes.Black }; Canvas.SetLeft(fill, x); Canvas.SetTop(fill, y); accessoryCanvas.Children.Add(fill); Polyomino p = nexts[i].Clone(); p.SRSNormalize(); Rect r = new Rect(x, y, holdCellWidth, holdCellWidth); p.drawPolyomino(accessoryCanvas, r, false); } }
internal void draw(Canvas accessoryCanvas, GameBoardData e) { accessoryCanvas.Children.Clear(); double holdCellWidth = 2 * accessoryCanvas.ActualWidth / 3; Rectangle rect = new Rectangle { Stroke = Brushes.Black, StrokeThickness = 2, Height = holdCellWidth, Width = holdCellWidth, Fill = Brushes.Black }; Canvas.SetLeft(rect, ( accessoryCanvas.ActualWidth - holdCellWidth ) / 2 ); Canvas.SetTop(rect, 0); accessoryCanvas.Children.Add(rect); if (e.HeldPolyomino != null) { Polyomino p = e.HeldPolyomino.Clone(); p.SRSNormalize(); Rect r = new Rect((accessoryCanvas.ActualWidth - holdCellWidth) / 2, 0, holdCellWidth, holdCellWidth); p.drawPolyomino(accessoryCanvas, r, false); } //List<Polyomino> nexts = e.MyPieceDealer.peekNextPolyominos(5); //double startNextsY = holdCellWidth * 1.5; //for (int i = 0; i < 5; i++) //{ // double x = (accessoryCanvas.ActualWidth - holdCellWidth) / 2; // double y = startNextsY + i * holdCellWidth; // Rectangle fill = new Rectangle { Stroke = Brushes.Black, StrokeThickness = 2, Height = holdCellWidth, Width = holdCellWidth, Fill = Brushes.Black }; // Canvas.SetLeft(fill, x); // Canvas.SetTop(fill, y); // accessoryCanvas.Children.Add(fill); // Polyomino p = nexts[i].Clone(); // p.SRSNormalize(); // Rect r = new Rect(x,y, holdCellWidth, holdCellWidth); // p.drawPolyomino(accessoryCanvas, r, false); //} }
private void BoardChangedEvent_boardChanged(object sender, GameBoardData e) { accessoryDrawer.drawRight(AccessoryCanvas, e ); }
private void boardChangeFired(object sender, GameBoardData e) { drawer.draw(e); }
public static void fire(Object s, GameBoardData payload) { boardChanged(s, payload); }