Bonjour,
Je travaille avec DELPHI
j'ai un objet 3D qui bouge dans une map. et je veux que la caméra suive cet objet en meme temps qu'il bouge,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 gluLookAt( 1.0+trans_dt*0.99 , hauteur_cam , 0.0+trans_lat , trans_dt+1.0 , hauteur_cam , 0.0+trans_lat , trans_dt , 0.3 , 0.0 );
je n'arrive pas a faire suivre correctement la caméra pour qu'elle suive l'objet 3D (en l'occurence un bateu) pour que celle-ci soit toujours derriere lui
trans_lat et trans_dt me permettent de faire les translations de l'objet 3D
J'ai un 2ème probleme, je réussi a faire tourner la caméra autour grace aux sinus et cosinus quand le bateau est en (0.0,0.0,0.0)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 glLoadIdentity; gluLookAt( rayon_cam * cos (teta_cam) , hauteur_cam , (rayon_cam * sin (teta_cam)) , // Position de l'oeil 0.0 , hauteur_cam , 0.0 , // Direction du regard 0.0 , 0.3 , 0.0 ); // "ou on tourne la tête!"
et les touches de mouvement :
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 // Gestion du pavé directionnel // A gauche if (glfwGetKey(GLFW_KEY_LEFT) = 1) then teta_cam := teta_cam + 0.05; // A droite if (glfwGetKey(GLFW_KEY_RIGHT) = 1) then teta_cam := teta_cam - 0.05; if (glfwGetKey(GLFW_KEY_UP) = 1) then rayon_cam := rayon_cam - 1; if (glfwGetKey(GLFW_KEY_DOWN) = 1) then rayon_cam := rayon_cam + 1; if (glfwGetKey(GLFW_KEY_SPACE) = 1) then hauteur_cam := hauteur_cam - 1; if (glfwGetKey(GLFW_KEY_ENTER) = 1) then hauteur_cam := hauteur_cam + 1; if (glfwGetKey(GLFW_KEY_BACKSPACE) = 1) then begin FSOUND_SetMute(3, false); end else FSOUND_SetMute(3, true);
Partager