// Игровой цикл 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++; FiguresLabel.Text = Game.FiguresDropped.ToString(); 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; } } ShowAdvice(); } } ElapsedTimeLabel.Text = (DateTime.Now - Game.GameStarted).ToString(@"mm\:ss"); Refresh(); }
static void FaillingFigure() { var pos = new Point(_figure.Position.X, _figure.Position.Y); pos.Y++; // смещение фигуры вниз if (_field.CheckLimits(_figure, pos) && _field.CheckCollision(_figure, pos)) { _figure.Position = pos; // смещаем фигуру вниз } else { _field.PlaceFigure(_figure); _figure = _nextFigure; _nextFigure = TakeRandom(); DrawNext(); } }
// Game cycle void GameTimerTick(object sender, EventArgs e) { if (Game.Paused) { return; } GF.DoStep(); GF2.DoStep();/////// if (!GF.IsFigureFalling) { //you need to put a new figure on the field and hide the full rows SetScore(Game.Score + GF.RemoveFullRows() * 10); if (!GF.PlaceFigure(Game.NextFigure)) { //game over OnGameOver(); } else { Game.NextFigure = Figure.RandomFigure(); Game.FiguresDropped++; FiguresLabel.Text = Game.FiguresDropped.ToString(); Preview.Clear(); Preview.SetFigure(Game.NextFigure.MoveTo(1, 1), false); if (Game.FigureChanged && Game.FiguresDropped % 5 == 0) { Game.FigureChanged = false; } //speed up the game with increasing points if (Game.FiguresDropped % 15 == 0 && Game.Score != 0) { if (GameTimer.Interval > 300) { //GameTimer.Enabled=false; GameTimer.Interval -= 100; //GameTimer.Enabled=true; } } ShowAdvice(); } } // if (!GF2.IsFigureFalling) { //you need to put a new figure on the field and hide the full rows SetScore2(Game.Score2 + GF2.RemoveFullRows() * 10); if (!GF2.PlaceFigure(Game.NextFigure2)) { //game over OnGameOver(); } else { Game.NextFigure2 = Figure.RandomFigure(); Game.FiguresDropped2++; FiguresLabel2.Text = Game.FiguresDropped2.ToString(); Preview2.Clear(); Preview2.SetFigure(Game.NextFigure2.MoveTo(1, 1), false); if (Game.FigureChanged2 && Game.FiguresDropped2 % 5 == 0) { Game.FigureChanged2 = false; } //speed up the game with increasing points if (Game.FiguresDropped2 % 15 == 0 && Game.Score2 != 0) { if (GameTimer.Interval > 300) { //GameTimer.Enabled=false; GameTimer.Interval -= 100; //GameTimer.Enabled=true; } } ShowAdvice2(); } }// ElapsedTimeLabel.Text = (DateTime.Now - Game.GameStarted).ToString(@"mm\:ss"); ElapsedTimeLabel2.Text = (DateTime.Now - Game.GameStarted).ToString(@"mm\:ss"); Refresh(); }