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);