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 :
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();
}
Si quelqu'un à une solution, je suis preneur