Beispiel #1
0
        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));
        }