Пример #1
0
        // Игровой цикл
        void GameTimerTick(object sender, EventArgs e)
        {
            if (Game.Paused)
            {
                return;
            }

            GF.DoStep();

            if (!GF.IsFigureFalling)
            {
                //нужно поместить новую фигуру на поле и скрыть полные ряды
                SetScore(Game.Score + GF.RemoveFullRows() * 10);

                if (!GF.PlaceFigure(Game.NextFigure))
                {
                    //игра окончена
                    OnGameOver();
                }
                else
                {
                    Game.NextFigure = Figure.RandomFigure();
                    Game.FiguresDropped++;
                    Preview.Clear();
                    Preview.SetFigure(Game.NextFigure.MoveTo(1, 1), false);

                    if (Game.FigureChanged && Game.FiguresDropped % 5 == 0)
                    {
                        Game.FigureChanged = false;
                    }
                    //ускоряем игру при росте количества очков
                    if (Game.FiguresDropped % 15 == 0 && Game.Score != 0)
                    {
                        if (GameTimer.Interval > 300)
                        {
                            //GameTimer.Enabled=false;
                            GameTimer.Interval -= 100;
                            //GameTimer.Enabled=true;
                        }
                    }
                }
            }

            Refresh();
        }
Пример #2
0
        private void NewGame()
        {
            Game = new TetrisGame();
            Game.StateChanged += new EventHandler(Game_StateChanged);
            SetScore(0);

            GameTimer.Interval = 1000;
            GameTimer.Enabled  = true;

            Game.NextFigure = Figure.RandomFigure();

            GF.Clear();

            Refresh();
        }
Пример #3
0
        private void NewGame()
        {
            tetrisGame = new TetrisGame();
            tetrisGame.StateChanged += new EventHandler(Game_StateChanged);
            SetScore(0);

            tmrGame.Interval = 1000;
            tmrGame.Enabled  = true;

            tetrisGame.NextTetromino = Tetromino.RandomTetromino();

            gameField.Clear();

            Refresh();
        }