void timerGasBar(int value){ // on posto if(player.getFlying() && !onPosto(player, arena.getPostoAbastecimento())){ player.decGas(); } // refuels if(onPosto(player, arena.getPostoAbastecimento())){ player.setGas(player.getTempoDeVoo()); } glutTimerFunc((1000),timerGasBar,0); glutPostRedisplay(); }
int main(int argc, char* argv[]){ char path[255]; if(argc != 2){ cout << "Running at default path './config/config.xml'..." << endl; strcpy(path, "../config/config.xml"); }else{ strcpy(path, argv[1]); strcat(path, "config.xml"); } srand(time(NULL)); config.readXML(path); arena.readXMLArena((config.getArena().getPath() + config.getArena().getName() + "." + config.getArena().getExtension()).c_str()); player = config.readHelicopterConfig(path); player.setArena(ARENAX, ARENAY); enemies.push_back(config.readEnemyHelicopter(path, ARENAX/100 * 90, ARENAY/100 * 10)); enemies.push_back(config.readEnemyHelicopter(path, ARENAX/100 * 90, ARENAY/100 * 90)); enemies.push_back(config.readEnemyHelicopter(path, ARENAX/100 * 10, ARENAY/100 * 90)); enemies.at(0).setAngle(0); glutInit (&argc, argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize (ARENAX,ARENAY); glutInitWindowPosition (0, 0); glutCreateWindow ("Arena"); init (ARENAX, ARENAY); glutDisplayFunc (display); glutMouseFunc (mouse); glutIdleFunc (idle); glutKeyboardFunc (setKeyDown); glutKeyboardUpFunc (setKeyUp); //timers glutTimerFunc((player.getTempoDeVoo() * 1000)/5, timerGasBar, 0); glutTimerFunc(rand() % (int)(5 - 2 + 1),timerEnemyMovement,0); glutTimerFunc(200,timerEnemyShooting,200); glutPassiveMotionFunc(motion); glutMainLoop (); }