lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009
-
12 déc. 2008 à 16:11
lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009
-
12 déc. 2008 à 16:13
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?
lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009 12 déc. 2008 à 16:13
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