Bonsoir,

Ca fait un petit moment que je cherche, et je ne vois pas ce qui ne va pas.
Lorsque je compile le programme j'obtiens :

[ 30%] Building CXX object CMakeFiles/tuxworld.dir/src/game/screen_wait.cpp.o
/home/lydia/tuxw_svn6/tuxworld/src/game/screen_wait.cpp: In function ‘void screen_wait(s_game&, SDL_Event&, bool, std::string&, const float&, const int&, const bool&)’:
/home/lydia/tuxw_svn6/tuxworld/src/game/screen_wait.cpp:82:25: erreur: ‘class CAnimation’ has no member named ‘show_kinect’
make[2]: *** [CMakeFiles/tuxworld.dir/src/game/screen_wait.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/tuxworld.dir/all] Erreur 2
make: *** [all] Erreur 2
Je vais voir la ligne 82 (ici ligne 19) de screen_wait.cpp et je lis :

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
         #if KINECT_COMP == 1

         if(game.kinect)
         if(show_bk) {

            // we lock the thread
            data_kinect.th->lock();

            // recover the squeleton
            skl = data_kinect.squel;

            // unlock the thread
            data_kinect.th->unlock();

            // draw the hand_cursor
            glPushMatrix();
            glTranslatef((SIZE_TEXTURE_W_MAX / 2 - CAM_W / 2) * game.coef_resol, (SIZE_TEXTURE_H_MAX / 2 - CAM_H / 2) * game.coef_resol, 0);
            hand_cursor.object_move(skl.hand0.x, skl.hand0.y);
            hand_cursor.show_kinect(NO_LOOP, false, 1, .4f);

            glPopMatrix();

            // draw stars buttons
            kin_button.draw(SIZE_TEXTURE_W_MAX / 2 - CAM_W / 2, SIZE_TEXTURE_H_MAX / 2 - CAM_H / 2 + CAM_H - 100, -.3);
            // test hands on stars button
            if(kin_button.select(SIZE_TEXTURE_W_MAX / 2 - CAM_W / 2 + skl.hand0.x, SIZE_TEXTURE_H_MAX / 2 - CAM_H / 2 + skl.hand0.y))
               --ready;
            else
               ready = 40;
               
            if(!ready && !stage_screen) {
               stage_screen = true;
               ++i;
            }
         }

         #endif
Mon include #include"animation.h" est bien présent dans screen_wait.h.

dans mon animation.h j'ai bien

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
      #if KINECT_COMP == 1
      // show without scale for kinect
      void show_kinect(const int& loop_type, const bool& orientation, const int& step, const float& deep);
      #endif
et mon animation.cpp :

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
#if KINECT_COMP == 1
void CAnimation::show_kinect(const int& type_anim, const bool& orientation, const int& step, const float& deep) {
 
   if(seq)
 
      // we show the surface with id = cursor
      Vimages.at(seq[cursor])->show_GL_kinect(orientation, object_properties(), deep, slide_blk);
 
   else
 
      // we show the surface with a normal seq (1, 2, 3, 4, 5, ...)
      Vimages.at(cursor)->show_GL_kinect(orientation, object_properties(), deep, slide_blk);
 
   // increment animation
   pass(type_anim, step);
}
#endif
C'est depuis que j'ai rajouté ce #if KINECT_COMP == 1 que ça a du mal à passer. Je compile avec KINECT_COMP valant 1. Les autres classes faisant appel à show_kinect passent bien, sauf ce screen_wait, trop bizarre ! Merci d'avance ça fait 2 h que suis dessus.