protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Left) { if (!field.LeftBorder.Intersect(ln.LeftBorder.ToAbsolute(ln.Position)).Any()) { field.Clear(ln); ln.Position = new Point(ln.Position.X - 1, ln.Position.Y); field.Draw(ln); } } if (keyData == Keys.Right) { if (!field.RightBorder.Intersect(ln.RightBorder.ToAbsolute(ln.Position)).Any()) { field.Clear(ln); ln.Position = new Point(ln.Position.X + 1, ln.Position.Y); field.Draw(ln); } } if (keyData == Keys.Up) { // if (top>0) { field.Clear(ln); ln.Rotate(); field.Draw(ln); } } if (keyData == Keys.Down) { if (field.ReadyToMoveDown && !field.DeadLine.Intersect(ln.BottomBorder.ToAbsolute(ln.Position)).Any()) { field.Clear(ln); ln.Position = new Point(ln.Position.X, ln.Position.Y + 1); field.Draw(ln); } } return(base.ProcessCmdKey(ref msg, keyData)); }
public MainForm() { ln.Position = new Point(1, 4); field = new Field(ln); InitializeComponent(); this.Controls.Add(field); Color?[,] arr = new Color?[field.NetSize.Width, field.NetSize.Height]; field.Net = arr; field.Draw(ln); field.ItemStacked += OnItemStacked; }
private static void Draw() { Console.Clear(); // draw main field field.Draw(); // next figure Console.SetCursorPosition(nextFigureX + leftMarginWidth, nextFigureY); Console.ForegroundColor = ConsoleColor.White; Console.Write("Next figure: "); nextFigure.Draw(); // draw current figure currentFigure.Draw(); }