Je commence actuellement à apprendre OpenGL à l'école et j'ai commencé à faire un jeu simple l'autre jour (seul, pas pour l'école). J'utilise freeglut et je le construis en C, donc pour ma boucle de jeu, je venais vraiment d'utiliser une fonction à laquelle j'ai fait passer glutIdleFunc
pour mettre à jour tous les dessins et la physique en un seul passage. C'était bien pour des animations simples que je ne me souciais pas trop de la fréquence d'images, mais comme le jeu est principalement basé sur la physique, je veux vraiment (avoir besoin) de déterminer la vitesse de mise à jour.
Donc, ma première tentative a été de passer ma fonction à glutIdleFunc
( myIdle()
) pour garder une trace du temps écoulé depuis l'appel précédent et mettre à jour la physique (et actuellement les graphiques) toutes les millisecondes. j'ai utilisétimeGetTime()
de le faire (en utilisant <windows.h>
). Et cela m'a fait penser, est-ce que l'utilisation de la fonction de veille est vraiment une bonne façon de parcourir la boucle du jeu?
Ma question est, quelle est une meilleure façon d'implémenter la boucle de jeu dans OpenGL? Dois-je éviter d'utiliser la fonction de veille?