// update function void Update(int value){ if(loseFlag==FALSE){ newFigureFlag=tetrisFigure.Translate(0, -1); if(!newFigureFlag){ tetrisGame.Update(tetrisFigure); tetrisFigure.New(rand()%NUM_FIGURE); } } glutPostRedisplay(); // Refresh Display glutTimerFunc(100, Update, 0); }
// 更新函数 void Update(int value){ // 如果游戏没有结束 if(tetrisGame.GetStatus()){ // 向下移动形状 int moveSuccess = tetrisFigure.Translate(0, -1); // 如果移动失败表示当前形状已经无法继续下移 // 更新游戏状态并创建新的形状 if(!moveSuccess){ tetrisGame.Update(tetrisFigure); tetrisFigure.New(rand()%NUM_FIGURE); } } // 刷新显示 glutPostRedisplay(); // 设置每0.5秒刷新一次 glutTimerFunc(500, Update, 0); }