nisaloncaje
Messages postés154Date d'inscriptionsamedi 7 janvier 2006StatutMembreDernière intervention28 septembre 2008
-
20 avril 2007 à 22:01
Grizou0
Messages postés5Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention21 novembre 2009
-
19 mars 2008 à 11:47
Bonjour, je souhaiterais que, lorsque que je bouge la souris, ma scène en OpenGL tourne de la même manière, comme dans un FPS.
J'ai donc le code suivant dans la fonction main :
<ol><li class="li1">
glutDisplayFunc(display);
</li><li class="li1">
glutKeyboardFunc(keyboard);
</li><li class="li1">
glutPassiveMotionFunc(souris_passif);
</li><li class="li1">
glutIdleFunc(core);
</li><li class="li1">
glutMainLoop();
</li></ol>
ma fonction souris_passif étant :
<dd>
void souris_passif(int x,int y){
</dd><dd>
float vitesse_souris=0.1f;
</dd><dd>
</dd><dd>
// On repositionne le curseur de la souris
</dd><dd>
SetCursorPos(X_ORG,Y_ORG);
</dd><dd>
glutPostRedisplay(); //(J'ai essayé sans, ça ne change rien)
</dd><dd>
}
</dd>
Le problème est le suivant : quand je lance mon programme j'ai le droit à un écran sans image
nisaloncaje
Messages postés154Date d'inscriptionsamedi 7 janvier 2006StatutMembreDernière intervention28 septembre 2008 21 avril 2007 à 15:45
si je supprime le corps de la fonction, tout est normal.
et j'utilise ceci pour positionner la caméra (à vrai dire je n'ai jamais bien compris la structure de glulookat) :
glLoadIdentity();
glRotatef(angle_cam.x,1.0,0.0,0.0);
glRotatef(angle_cam.y,0.0,1.0,0.0);
glRotatef(angle_cam.z,0.0,0.0,1.0);
glTranslatef(pos_cam.x,pos_cam.y,pos_cam.z);
glScalef(1.5,1.5,1.5);
glPushMatrix();
Mais ce qui est bizarre, c'est que l'écran est vide quand la fonction a le corps. En effet, c'est comme s'il n'y avait jamais dans le programme de demande d'affichage.