private void TmrGame_Tick(object sender, EventArgs e) { //游戏暂停则跳过 if (tetrisGame.Paused) { return; } gameField.DoStep(); if (!gameField.IsTetrominoFalling) { //清除满行 int removeRows = gameField.RemoveFullRows(); SetScore(tetrisGame.Score + removeRows * 10); if (removeRows != 0 && sound) { secBuffer = new SecondaryBuffer(Properties.Resources.clear, secDev); //创建辅助缓冲区 secBuffer.Play(0, BufferPlayFlags.Default); //设置缓冲区为默认播放 } if (!gameField.PlaceTetromino(tetrisGame.NextTetromino)) { OnGameOver(); } else { tetrisGame.NextTetromino = Tetromino.RandomTetromino(); tetrisGame.TetrominosDropped++; lblDropped.Text = tetrisGame.TetrominosDropped.ToString(); nextTetromino.Clear(); nextTetromino.DrawTetromino(tetrisGame.NextTetromino.MoveTo(1, 1), false); //交换tetromino的冷却 if (tetrisGame.TetrominoChanged && tetrisGame.TetrominosDropped % 5 == 0) { tetrisGame.TetrominoChanged = false; } //游戏加速 if (tetrisGame.TetrominosDropped % 15 == 0 && tetrisGame.Score != 0 && tmrGame.Interval > 300) { tmrGame.Interval -= 100; } ShowTips(); } } lblTime.Text = (DateTime.Now - tetrisGame.GameStarted).ToString(@"mm\:ss"); Refresh(); }