#include #include #include #include "fonction.h" /*Input Serpent*/ int Controle(int direction){ int t; 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; case XK_Escape: go_on=0; go_menu=0; break; case XK_space: if (pause==0){ pause=1; }else{ pause=0; ChoisirCouleurDessin(CouleurParComposante(255,255,255)); EcrireTexte(500,750,"Jeu en Pause",2); } break; } } return direction; } /*Avancement automatique du serpent en fonction de la direction*/ void Serpent(int direction){ int p=0; 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); if (vitesse>20000){ vitesse=vitesse-1500; } } } Update_Serpent(direction); Terrain(); Attendre(vitesse); } /*fonction pour mettre à jour la position du serpent*/ void Update_Serpent(int direction){ int i=1; 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