glutMainLoopEvent() va traiter toutes les actions de ta fenêtre, quand tu va faire un truc sur ton programme (redimensionner une fenêtre, appuyer sur une touche, etc) toute ces actions sont stockées sur une pile, l'appel de glutMainLoopEvent dépile tout ça et va balancer / traiter les événements.
En quoi un sleep ferait que tes événements soient "pas super bien catchés" ?
Là de ce que je vois, cette partie :
Code :
- now = lib->getTicks();
- if (int(now) % int(s_event.getTime()) == 0)
- {
- if (do_event_game(lib, snake, s_event) == false)
- break;
- if (print_all(lib, snake) == false)
- break;
- }
|
Va mettre à jour tout ton truc qu'une fois sur s_event.getTime().
Normalement tu le fais tout le temps, en faisant passer le delta time (temps écoulé entre deux frames), tu règles ensuite les vitesses de tes objets en fonction de ce delta-time, une fois la maj faite, tu mets en pause ton programme au moins 1ms (ça permet un p'tit break sur ta CG / ton proco),ou sinon le nombre de milliseconde requise pour lock le framerate à une certaine valeur (genre tu veux 60FPS constant, t'as pris 4ms pour faire la MAJ/rendu, tu fais un sleep(12) ).
---------------
Perhaps you don't deserve to breathe