Salut à tous.
Je suis actuellement en train de développer un "minecraft-like" pour un projet scolaire.
J'ai donc fait le personnage (6 pavés), et je le fait déplacer dans l'espace.
Le problème, c'est que mon personnage ne tourne toujours qu'autour du repère d'origine, au lieu de tourner autour de lui même.
Voici le code que j'utilise pour générer le personnage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 void dessinerPerso() { //BODY ################################### glRotated(angleBody,0,1,0); dessineCorps(DIM1,DIM1*1.5,DIM1/2); //HEAD ################################### glPushMatrix(); glTranslated(0,DIM1,0); dessineTete(DIM1,DIM1,DIM1); glPopMatrix(); //RIGHT ARM ################################### glPushMatrix(); glTranslated(-DIM1/2,0,0); glRotated(angleRA,1,0,0); dessineBras(DIM1/2,DIM1*1.5,DIM1/2,1); glPopMatrix(); //LEFT ARM ################################### glPushMatrix(); glTranslated(DIM1,0,0); glRotated(angleLA,1,0,0); dessineBras(DIM1/2,DIM1*1.5,DIM1/2,0); glPopMatrix(); //RIGHT LEG ################################### glPushMatrix(); glTranslated(0,-1.5*DIM1,0); glRotated(angleRL,1,0,0); dessineJambe(DIM1/2,DIM1*1.5,DIM1/2,1); glPopMatrix(); //LEFT LEG ################################### glPushMatrix(); glTranslated(DIM1/2+1,-1.5*DIM1,0); glRotated(angleLL,1,0,0); dessineJambe(DIM1/2,DIM1*1.5,DIM1/2,0); glPopMatrix(); }
Je ne vous détaille pas les fonctions dessiner...(), elles génèrent juste un pavé avec la texture appropriée.
Et voici ma fonction principale :
Si quelqu'un à une solution, je suis preneur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void Dessiner() { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glMatrixMode( GL_MODELVIEW ); glLoadIdentity( ); camera->look(); dessinerRepere(200); //Génération de la Map glPushMatrix(); glTranslated(-TAILLE_MAP/2,TAILLE_MAP,0); dessinePiece(TAILLE_MAP,TAILLE_MAP,TAILLE_MAP); glPopMatrix(); //Déplacement du peronnage double x = axe * sin(angleBody * M_PI / 180.0); double z = axe * cos(angleBody * M_PI / 180.0); glTranslated(x,DIM1*3,z); //Génération du personnage dessinerPerso(); glFlush(); SDL_GL_SwapBuffers(); }![]()
Partager