
Mon TP3 sur les pointeurs (Robot)
5 messages
• Page 1 sur 1
Mon TP3 sur les pointeurs (Robot)
Pour inauguré un peut le forum, je post le lien de mon TP sur le "robot" , je pense encore l'améliorer et surtout modifié un peut la disposition du code.
Donc si les personnes intéresser de le regarder pourrais donnée leurs impressions, cela m'aidera à progresser dans le codage
Lien pour le code source (VC++)
Lien pour le .exe pour testé directement. OK
Donc si les personnes intéresser de le regarder pourrais donnée leurs impressions, cela m'aidera à progresser dans le codage

Lien pour le code source (VC++)
Lien pour le .exe pour testé directement. OK
Dernière édition par N4th le 11 Avr 2008, 09:49, édité 1 fois.
- N4th
- Messages: 14
- Inscription: 28 Mar 2008, 23:30
Re: Mon TP3 sur les pointeurs (Robot)
Ha, enfin un de mes élèves qui se lance
Pour la source, je n'ai pas encore regardé, mais en tout cas, pour l'exe, il faut que tu change deux-trois trucs pour que ça marche chez tout le monde (perso, chez moi ça me fait "L'application n'a pas pu démarrer car sa configuration côte-à-côte incorrecte").
L'erreur est simplement due au fait qu'il manque des librairies de visual studio... Deux options :
- proposer aux personnes qui veulent tester ton application de télécharger vcredist_x86.exe qui installe toutes sortes de librairies (dont celles qu'il te faut)
- Utiliser l'option
Teste donc cette deuxième solution, je te dirais si ça marche !
Edit : En regardant de plus près ton .exe, je me suis rendu compte du problème : tu ne l'a pas compilé en mode "release" mais en mode "debug"... Change de mode, et reposte ton .exe, ça va corriger ton problème !

Pour la source, je n'ai pas encore regardé, mais en tout cas, pour l'exe, il faut que tu change deux-trois trucs pour que ça marche chez tout le monde (perso, chez moi ça me fait "L'application n'a pas pu démarrer car sa configuration côte-à-côte incorrecte").
L'erreur est simplement due au fait qu'il manque des librairies de visual studio... Deux options :
- proposer aux personnes qui veulent tester ton application de télécharger vcredist_x86.exe qui installe toutes sortes de librairies (dont celles qu'il te faut)
- Utiliser l'option
- Code: Tout sélectionner
Multithread (/MT)
Teste donc cette deuxième solution, je te dirais si ça marche !
Edit : En regardant de plus près ton .exe, je me suis rendu compte du problème : tu ne l'a pas compilé en mode "release" mais en mode "debug"... Change de mode, et reposte ton .exe, ça va corriger ton problème !
- Tibo
- Administrateur du site
- Messages: 147
- Inscription: 26 Mar 2008, 13:58
Re: Mon TP3 sur les pointeurs (Robot)
J'ai vu que tu avais mi à jour ton application
J'ai moi aussi travaillé, et j'ai amélioré ton application grâce à OpenGL. Pour ceux qui prennent en cours, l'application est basée sur le TP 3 disponible ici : http://tibo.lelore.free.fr/IRIS/1Annee/Pointeurs/
J'ai du modifier deux trois trucs pour pouvoir afficher une fenêtre OpenGL. La première grosse modification concerne le main :
Les deux dernières lignes permettent d'utiliser la librairie DevIL (qui permet de charger des images) avec OpenGL...
Ensuite, la fin du main permet d'actualiser la fenêtre en fonction des messages envoyés par Windows :
Ensuite, le code de la fonction dessiner est très simple (mis à part la partie d'initialisation que je passe...) :
glPushMatrix() permet de sauvegarder la position de la caméra, et glPopMatrix() permet de recharger une position précédemment enregistrée... SwapBuffers(hDC) permet d'afficher ce qui a été calculé. Donc la seule ligne intéressante est jeu->affiche(); qui est une fonction que j'ai du aussi modifier :
Ces lignes permettent d'afficher un texte à l'écran (glText2d est une fonction que j'ai écrite, basée sur ce tutorial) avec en paramètres la position en x,y du texte, la chaine de caractère, ainsi que la font.
Ensuite, il faut afficher le plateau :
Les seuls changements sont les glTranslatef qui permettent de déplacer le repère du dessin. Par contre, il a fallu modifier la fonction getDescription :
Voici le code pour dessiner un carré sur l'écran avec une texture...
Grâce à ces modifications, il est donc maintenant possible de visualiser les changements sur la fenêtre.
Pour tester ça directement, l'exécutable est téléchargeable, sinon, les sources sont disponibles ici. Par contre, c'est uniquement les fichiers .cpp et .h, pour savoir comment créer un projet lisez ce post !

J'ai moi aussi travaillé, et j'ai amélioré ton application grâce à OpenGL. Pour ceux qui prennent en cours, l'application est basée sur le TP 3 disponible ici : http://tibo.lelore.free.fr/IRIS/1Annee/Pointeurs/
J'ai du modifier deux trois trucs pour pouvoir afficher une fenêtre OpenGL. La première grosse modification concerne le main :
- Code: Tout sélectionner
fenetre f;//c'est notre fenêtre opengl...
f.CreeGLWindow("jeu de robot", 800,600,32,false);
Robot num1("R2d2",nivo); //créé notre robot
f.initJeu(new Jeu(&num1),mur);//ajoute le jeu à la fenêtre
ilutEnable(ILUT_OPENGL_CONV);
ilutRenderer(ILUT_OPENGL);
Les deux dernières lignes permettent d'utiliser la librairie DevIL (qui permet de charger des images) avec OpenGL...
Ensuite, la fin du main permet d'actualiser la fenêtre en fonction des messages envoyés par Windows :
- Code: Tout sélectionner
while(!done)// boucle jusqu'a la fin
{
// A t on un message en attente :
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (msg.message==WM_QUIT)// A t on le message quitter?
{
done=TRUE;
}
else// Si non, on traite le message
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else// Si il n'y a pas de message
{
// Affiche la scene
fenetre::actualiseTimer();
f.dessiner();// Affiche la scene
}
}
Ensuite, le code de la fonction dessiner est très simple (mis à part la partie d'initialisation que je passe...) :
- Code: Tout sélectionner
glPushMatrix();
//dessineAxe();
jeu->affiche();
glPopMatrix();
SwapBuffers(hDC);
glPushMatrix() permet de sauvegarder la position de la caméra, et glPopMatrix() permet de recharger une position précédemment enregistrée... SwapBuffers(hDC) permet d'afficher ce qui a été calculé. Donc la seule ligne intéressante est jeu->affiche(); qui est une fonction que j'ai du aussi modifier :
- Code: Tout sélectionner
string niveau="Energie du robot : "+to_string(robo->getNiveau());
glPushMatrix();
glColor3f(1.0f, 1.0f, 1.0f);
glText2d(600,250,niveau.c_str(),fenetre::fontIndex);
glColor3f(0.0f, 0.0f, 0.0f);
glPopMatrix();
Ces lignes permettent d'afficher un texte à l'écran (glText2d est une fonction que j'ai écrite, basée sur ce tutorial) avec en paramètres la position en x,y du texte, la chaine de caractère, ainsi que la font.
Ensuite, il faut afficher le plateau :
- Code: Tout sélectionner
while (cpt<20){
cpt2=0;
while (cpt2<20){
this->Plateau[cpt2][cpt]->getDescription();
//on avance de 27.5 vers la droite :
glTranslatef(27.5,0,0);
cpt2++;
}
//on recule de 20*27.5 en x et on descend de 27.5 en y :
glTranslatef(-20*27.5,27.5,0);
cpt++;
}
Les seuls changements sont les glTranslatef qui permettent de déplacer le repère du dessin. Par contre, il a fallu modifier la fonction getDescription :
- Code: Tout sélectionner
if(texture!=0)
glBindTexture(GL_TEXTURE_2D,texture);
//on veux dessiner des triangles :
glBegin(GL_TRIANGLES);
//d'abord les coordonnées de la texture :
glTexCoord2f(0,0);
//puis les coordonnées du premier point :
glVertex3f(0,0,0);
glTexCoord2f(0,1);
glVertex3f(0,27.5,0);
glTexCoord2f(1,1);
glVertex3f(27.5,27.5,0);
//le deuxième triangle (pour faire un carré...)
glTexCoord2f(1,1);
glVertex3f(27.5,27.5,0);
glTexCoord2f(1,0);
glVertex3f(27.5,0,0);
glTexCoord2f(0,0);
glVertex3f(0,0,0);
glEnd();
Voici le code pour dessiner un carré sur l'écran avec une texture...
Grâce à ces modifications, il est donc maintenant possible de visualiser les changements sur la fenêtre.
Pour tester ça directement, l'exécutable est téléchargeable, sinon, les sources sont disponibles ici. Par contre, c'est uniquement les fichiers .cpp et .h, pour savoir comment créer un projet lisez ce post !
- Tibo
- Administrateur du site
- Messages: 147
- Inscription: 26 Mar 2008, 13:58
Re: Mon TP3 sur les pointeurs (Robot)
merci beaucoup! je vais pouvoir continuer le codage avec une énorme amélioration! je posterai mon avancé sur ce TP qui devient maintenant un bon projet pour moi :p
( par contre l'archive avec l'exécutable à l'air de faire le même problème que j'avais : Compatibilité avec les pc qui n'ont pas VC++)
( par contre l'archive avec l'exécutable à l'air de faire le même problème que j'avais : Compatibilité avec les pc qui n'ont pas VC++)
- N4th
- Messages: 14
- Inscription: 28 Mar 2008, 23:30
Re: Mon TP3 sur les pointeurs (Robot)
Salut !
En effet, l'exécutable ne marche pas chez l'utilisateur lambda, c'est exactement l'erreur que tu avais faite. Je vais mettre la nouvelle version tout bientôt
Ca y est, l'exécutable est mis à jour et devrait marcher
En effet, l'exécutable ne marche pas chez l'utilisateur lambda, c'est exactement l'erreur que tu avais faite. Je vais mettre la nouvelle version tout bientôt

Ca y est, l'exécutable est mis à jour et devrait marcher

- Tibo
- Administrateur du site
- Messages: 147
- Inscription: 26 Mar 2008, 13:58
5 messages
• Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité