#include #include #include #include #include #include "fonction.h" /*Input Serpent*/ void Controle(){ while(ToucheEnAttente()){ t = Touche(); switch(t){ case XK_Left : if (direction != 4){ direction=3; break; } case XK_Right: if (direction != 3){ direction=4; break; } case XK_Up: if(direction !=2){ direction=1; break; } case XK_Down: if (direction !=1){ direction=2; break; } } } } /*Avancement automatique du serpent en fonction de la direction*/ void Serpent(){ if (direction == 1){ pos_y[0]=old_y[0]-20; } if (direction == 2){ pos_y[0]=old_y[0]+20; } if (direction == 3){ pos_x[0]=old_x[0]-20; } if (direction == 4){ pos_x[0]=old_x[0]+20; } for(p=0; p<5; p++){ if(pommex[p]==pos_x[0] && pommey[p]==pos_y[0]){ segment+=2; pommex[p] = ((rand() % (58)+1)*20); pommey[p] = ((rand() % (34)+1)*20); } } Update_Serpent(); Terrain(); usleep(100000); } /*fonction pour mettre à jour la position du serpent*/ void Update_Serpent(){ AfficherSprite(fond, pos_x[segment-1], pos_y[segment-1]); /*affichage de la tete en fonction de la direction du serpent*/ if (direction==1){ AfficherSprite(tete_up, pos_x[0], pos_y[0]); } if (direction==2){ AfficherSprite(tete_down, pos_x[0], pos_y[0]); } if (direction==3){ AfficherSprite(tete_left, pos_x[0], pos_y[0]); } if (direction==4){ AfficherSprite(tete_right, pos_x[0], pos_y[0]); } /*affichage du reste du corps*/ for (i=1 ; i