Amelioration code + commentaires. Rectifications erreurs etc.
This commit is contained in:
96
evenements.c
Normal file
96
evenements.c
Normal file
@@ -0,0 +1,96 @@
|
||||
#include <graph.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include "main.h"
|
||||
#include "gui.h"
|
||||
#include "scene.h"
|
||||
|
||||
int MourrirSerpent(PIXELS *serpent,PIXELS *obstacle, unsigned long longueur_serpent,unsigned long longueur_obstacle)
|
||||
{
|
||||
unsigned long i = 0;
|
||||
for(i=1;i<longueur_serpent;i++)
|
||||
{
|
||||
if(serpent[0].x == serpent[i].x && serpent[0].y == serpent[i].y )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
for(i=1;i<longueur_obstacle;i++)
|
||||
{
|
||||
if(serpent[0].x == obstacle[i].x && serpent[0].y == obstacle[i].y )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (serpent[0].x<=0 || serpent[0].x>W_GAME || serpent[0].y<=0 || serpent[0].y>H_GAME)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int MangerPastille(PIXELS *serpent, PIXELS* pastilles,PIXELS *obstacle,unsigned long *score,unsigned long longueur_serpent,unsigned long longueur_obstacle,unsigned long int *vitesse)
|
||||
{
|
||||
int i = 0;
|
||||
for(i=0;i<PASTILLES;i++)
|
||||
{
|
||||
if(serpent[0].x == pastilles[i].x && serpent[0].y == pastilles[i].y)
|
||||
{
|
||||
pastilles[i] = gen_pastille(serpent,pastilles,obstacle,longueur_serpent,longueur_obstacle);
|
||||
ChargerImage("./images/PommePastille.png",pastilles[i].x,pastilles[i].y,0,0,T_PIXEL,T_PIXEL);
|
||||
*score+=5;
|
||||
*vitesse/=1.008;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void DeplacementSerpent(int direction, PIXELS *serpent, unsigned long *longueur) {
|
||||
/* Sauvegarder la position actuelle de la queue du serpent */
|
||||
int queueX = serpent[*longueur - 1].x;
|
||||
int queueY = serpent[*longueur - 1].y;
|
||||
unsigned long i = 0;
|
||||
|
||||
/* Mettre à jour les positions du corps du serpent */
|
||||
for (i = *longueur - 1; i > 0; --i) {
|
||||
serpent[i].x = serpent[i - 1].x;
|
||||
serpent[i].y = serpent[i - 1].y;
|
||||
}
|
||||
|
||||
/* Effacer la queue du serpent */
|
||||
couleur bg = CouleurParComposante(171, 204, 104);
|
||||
ChoisirEcran(2);
|
||||
ChoisirCouleurDessin(bg);
|
||||
RemplirRectangle(queueX, queueY, T_PIXEL, T_PIXEL);
|
||||
|
||||
/* Mettre à jour la position de la tête du serpent */
|
||||
if (direction == 0) {
|
||||
serpent[0].x -= T_PIXEL; /* Vers la gauche */
|
||||
} else if (direction == 1) {
|
||||
serpent[0].y -= T_PIXEL; /* Vers le haut */
|
||||
} else if (direction == 2) {
|
||||
serpent[0].x += T_PIXEL; /* Vers la droite */
|
||||
} else if (direction == 3) {
|
||||
serpent[0].y += T_PIXEL; /* Vers le bas */
|
||||
}
|
||||
|
||||
/* Afficher la nouvelle tête du serpent */
|
||||
ChargerImage("./images/SnakePart.png", serpent[0].x, serpent[0].y, 0, 0, T_PIXEL, T_PIXEL);
|
||||
}
|
||||
|
||||
/* Mettre à jour la fonction Serpent */
|
||||
int Serpent(PIXELS *serpent, PIXELS *pastilles, PIXELS *obstacle, unsigned long *score,
|
||||
unsigned long *longueur_serpent, unsigned long longueur_obstacle,
|
||||
unsigned long int *vitesse, int direction) {
|
||||
if (MourrirSerpent(serpent, obstacle, *longueur_serpent, longueur_obstacle) == 1) {
|
||||
return 2;
|
||||
}
|
||||
DeplacementSerpent(direction, serpent, &(*longueur_serpent));
|
||||
if (MangerPastille(serpent, pastilles, obstacle, score, *longueur_serpent, longueur_obstacle, vitesse) == 1) {
|
||||
*longueur_serpent += 2;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user