[Algo] Principe du LOOP principal d'un jeu.

Principe du LOOP principal d'un jeu. [Algo] - Programmation

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:

  • Lire les finformation du clavier
  • Execute la physique
  • Rend le tout a l'écran


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 :D est-ce que c'est de cette manière que les jeux comerciaux execute le LOOP principal?

Reply

Marsh Posté le 23-03-2001 à 18:01:36   

Reply

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.

Reply

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.

Reply

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.

Reply

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  :wahoo:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed