Actualisation avec glut

Signaler
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009
-
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009
-
salut,
en fait le sujet n'est pas tres evocateur car je savais pas trop quoi metre. voici mon probleme.
j'ai ecrit une fonction qui permet de trouver un chemin dans un labyrinte respectant certaine regle. je n'aborde pas la question de la map mais plutot l'aspect graphique. actuellement en mode texte tout ce passe bien voici la fonction grossomode et a pres je dirai quel est le probleme:

int A00C(char *map,struct POSITION pos)
{
     int dir =firsdirection(map,pos);   //je prend la premiere direction valable

   while(trouve!=1)
  {
     checkenviron(map,dir) ;     
     dir = selectdir();     //selection la nouvelle direction a prendre
     updatememoire(map,pos);   //je rentre certaines donnee pour savoir plus tard si je suis deja passe par la
     gotoposition(&pos)              //entre autre pos est une structure pos.x pos.y
      //c'est normalement la que je dois afficher quelquechose     
  }
     //trouve est une variable global qui est modifier dans checkenviron
}
en mode text ce programe mache:
main()
{...
  ...
  loadmap("map/map00.lmap",map);
  cherche_l_entree(map,&pos);
  A00C(map,pos);
 }
bref a la fin il m'affiche une matrice avec tout ce qu'il a fait.

mon probleme oui enfin je vais le dire c'est que quand j'ai essaye avec opengl j'ai fait
main()
{
   les_glut_et_GL_initialisations();
   glutDisplayFunc(disp);
   glutIdleFunc(idle);
   glutMainLoop();
}

  void idle()
 {
    A00C(MAP,POS)  //map et pos sont passe global parceque je crois que c'est pas possible de passer des paramtres a idle
    glutPostRedisplay();
 }

void disp()
{
   affichemap();
   afficheA00C();  //oui il est sense afficher chaque nouvelle position chaque fois que dans A00C pos a varie.
}

ce qui ce passe c'est que je vois ma map s'afficher et je vois A00C afficher au point d'arriver donc A00C termine avant que glut ai fini d'afficher. ma question est comment puisje faire pour que chaque fois qu'il ya un moveto(&pos) et seulement quand cette fonction est appeller il rafraichit l'ecran pour montrer la nouvelle position de A00C sur l'ecran?

1 réponse

Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009

tiens comment on fait pour modifier le post et pour ajouter des balises code j'ai pas vu les boutons ni pour l'un ni pour l'autre? ce que j'ai ecrit n'est donc pas tres agreable a lire