Пример #1
0
        // Обработка ввода
        void MainFormKeyDown(object sender, KeyEventArgs e)
        {
            e.SuppressKeyPress = true;

            if (Game.GameOver || Game.Paused)
            {
                return;
            }

            if (e.KeyData == Keys.Left || e.KeyData == Keys.A)
            {
                GF.MoveLeft();
            }
            if (e.KeyData == Keys.Right || e.KeyData == Keys.D)
            {
                GF.MoveRight();
            }
            if (e.KeyData == Keys.Up || e.KeyData == Keys.W)
            {
                if (GF.Drop())
                {
                    SetScore(Game.Score + 5);
                }
            }
            if (e.KeyData == Keys.Down || e.KeyData == Keys.S)
            {
                if (GF.MoveDown())
                {
                    SetScore(Game.Score + 1);
                }
            }
            if (e.KeyData == Keys.Space)
            {
                GF.RotateFigure();
            }

            if (e.KeyData == Keys.Q)
            {
                if (!Game.FigureChanged && GF.IsFigureFalling)
                {
                    Game.NextFigure = new Figure(GF.ChangeFigure(Game.NextFigure).Type);
                    Preview.Clear();
                    Preview.SetFigure(Game.NextFigure.MoveTo(1, 1), false);
                    Game.FigureChanged = true;
                    if (Game.NextFigure == Figure.Zero)
                    {
                        OnGameOver();
                    }
                }
                if (Game.FigureChanged)
                {
                    ShowAdvice(0);
                }
            }
            Refresh();
        }