mouvement 4

This commit is contained in:
Wilfried BRIGITTE 2023-11-24 17:09:15 +01:00
parent 873bff0594
commit 7ffb44076d

View File

@ -4,19 +4,32 @@
#define CYCLE 10000L #define CYCLE 10000L
/*variables*/ /*variables*/
/*timer*/
int seconde=0; int seconde=0;
int minute=0; int minute=0;
int seconde_actuel=0; int seconde_actuel=0;
int old_seconde=0; int old_seconde=0;
char timer[6]; char timer[6];
unsigned long int suivant; unsigned long int suivant;
/*fin de jeu*/
int go_on=1; int go_on=1;
/*serpent*/
int serpent; int serpent;
int x = 600; int x = 600;
int y = 400; int y = 400;
int direction = 4; /*1 : vers le haut , 2 : vers le bas; 3 : vers la gauche, 4 : vers la droite*/ int direction = 4; /*1 : vers le haut , 2 : vers le bas; 3 : vers la gauche, 4 : vers la droite*/
int t; int t;
int segment=5;
int i=0;
int pos_x[5];
int pos_y[5];
int old_x[5];
int old_y[5];
/*Fonction Pour créer la première scene du jeu*/ /*Fonction Pour créer la première scene du jeu*/
void DessinerScene(){ void DessinerScene(){
snprintf(timer,6,"%02d:%02d", minute, seconde); snprintf(timer,6,"%02d:%02d", minute, seconde);
@ -25,7 +38,14 @@ void DessinerScene(){
ChoisirCouleurDessin(CouleurParComposante(255,255,255)); ChoisirCouleurDessin(CouleurParComposante(255,255,255));
EcrireTexte(10,760,timer,2); EcrireTexte(10,760,timer,2);
serpent=ChargerSprite("serpent.png"); serpent=ChargerSprite("serpent.png");
AfficherSprite(serpent, x, y);
for (i=0 ; i<segment ; i++){
AfficherSprite(serpent, x-(i*20), y);
pos_x[i]=x-(i*20);
pos_y[i]=y;
old_y[i]=pos_y[i];
old_x[i]=pos_x[i];
}
} }
/*Fonction pour mettre à jour unuquement le timer*/ /*Fonction pour mettre à jour unuquement le timer*/
@ -42,13 +62,24 @@ void Update_Timer(){
void Update_Serpent(){ void Update_Serpent(){
ChoisirCouleurDessin(CouleurParComposante(141,199,63)); ChoisirCouleurDessin(CouleurParComposante(141,199,63));
RemplirRectangle(20,20,1160,700); RemplirRectangle(20,20,1160,700);
AfficherSprite(serpent, x, y); AfficherSprite(serpent, pos_x[0], pos_y[0]);
for (i=1 ; i<segment ; i++){
pos_x[i]=old_x[i-1];
pos_y[i]=old_y[i-1];
AfficherSprite(serpent, pos_x[i], pos_y[i]);
}
old_x[0]=pos_x[0];
old_y[0]=pos_y[0];
for (i=1 ; i<segment ; i++){
old_x[i]=pos_x[i];
old_y[i]=pos_y[i];
}
} }
void Terrain(){ void Terrain(){
if (x >1180 || x<20) if (pos_x[0] >1180 || pos_x[0]<20)
go_on=0; go_on=0;
if (y<0 || y >700) if (pos_y[0]<0 || pos_y[0] >700)
go_on=0; go_on=0;
} }
@ -100,16 +131,16 @@ void Controle(){
/*Avancement automatique du serpent en fonction de la direction*/ /*Avancement automatique du serpent en fonction de la direction*/
void Serpent(){ void Serpent(){
if (direction == 1){ if (direction == 1){
y=y-20; pos_y[0]=old_y[0]-20;
} }
if (direction == 2){ if (direction == 2){
y=y+20; pos_y[0]=old_y[0]+20;
} }
if (direction == 3){ if (direction == 3){
x=x-20; pos_x[0]=old_x[0]-20;
} }
if (direction == 4){ if (direction == 4){
x=x+20; pos_x[0]=old_x[0]+20;
} }
Update_Serpent(); Update_Serpent();
Terrain(); Terrain();