예제 #1
0
파일: MainForm.cs 프로젝트: zadiran/Tetris
        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));
        }
예제 #2
0
파일: MainForm.cs 프로젝트: zadiran/Tetris
        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;
        }
예제 #3
0
        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();
        }