Example #1
0
// 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);
}
Example #2
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);
}