private void GameForm_OnNewGameClick(object sender, EventArgs e) { _score = 0; _gameBoard.Clear(); _gameTimer.Start(); GameTimer_Tick(sender, e); }
/// <summary>Игровой цикл.</summary> private void GameTimer_Tick(object sender, EventArgs e) { if (_game.Paused) { return; } SetScore(GetNowScore()); SetLines(); SetTime(); _playField.DoStep(); if (!_playField.IsFigureFalling) { // если не удалось поместить новую фигуру на поле, то игра окончена if (!_playField.PlaceShape(_game.NextShape)) { OnGameOver(); } else // если удалось { _game.NextShape = GameShape.RandomFigure(); _game.ShapeDropped++; _nextShape.Clear(); if (Properties.Settings.Default.NextShape) { _nextShape.SetFigure(_game.NextShape.MoveTo(0, 1), false); } // если фигура изменилась или упала, то фигура не изменилась if (_game.FigureChanged && _game.ShapeDropped % 5 == 0) { _game.FigureChanged = false; } } } Refresh(); }