Principe du LOOP principal d'un jeu. [Algo] - Programmation
Marsh Posté le 23-03-2001 à 18:11:47
Il faut utiliser des timers qui vont "réguler" le temps d'execution de ton programme suivant la vitesse du processeur. Je te dis ça mais je n'y connais rien du tout dans ce domaine! Donc fait une recherche sur www.google.com.
Marsh Posté le 23-03-2001 à 18:32:41
Si la physique se fait en virgule flottant, il suffit de prendre en compte un dt qui viendra de l'horloge haute précision du système. Il faut savoir qu'en cas de grosse saccade, on peut avoir des comportements bizarres. Donc ce qu'il faut c'est calculer la physique un fois pas frame tant que la période dt<=dtlimite et passer dt en paramètre au moteur physique.
Si dt>dtlimite, il faut appeler Esup(dt/dtlimite) fois l'algo physique avec pour paramètre dt/Esup(dt/dtlimite).
Cette méthode est très bien lorsque ce n'est pas le moteur physique qui consomme la majorité du temps processeur.
Marsh Posté le 23-03-2001 à 18:34:44
L'autre méthode est de lier le calcul physique à un timer, mais ça pose un problème (contournable) qui est le choix de l'intervalle d'appel. S'il est trop petit, ça saturera les machines peu puissantes, et s'il est trop grand, les déplacements (et non le frame rate) seront saccadés.
Marsh Posté le 24-03-2001 à 01:18:23
janoscoder peut tu m'expliquer ce que les DT et DTLIMITE sont? j'aprécirais beacoup
Marsh Posté le 23-03-2001 à 18:01:36
Voila, j'ai crée un jeu pour un travail à l'école que je vais mettre sur un CD pour les finisants. Le jeux fonctione parfaitement, mais comme le loop princpal s'execute dans cet ordre:
Mais si le jeu roule sous une machine plus lente que la mienne (la machine que le jeu a été developer dessu) le tout est beacoup plus lent, et sur une machine plus rapide, le tout s'execute beacoup trop vite.
Alors j'ai penser mettre une limite de temps entre les MAJ de la physique.
Bon pour un revenir a la question est-ce que c'est de cette manière que les jeux comerciaux execute le LOOP principal?