ajout obstacle
This commit is contained in:
89
scene.c
89
scene.c
@@ -16,7 +16,7 @@ int ArrondirPixel(int nombre) /* Calcule un arrondi du pixel pour pouvoir respec
|
||||
return arrondi;
|
||||
}
|
||||
|
||||
PIXELS gen_pastille(PIXELS *serpent,PIXELS *pastilles,int longueur_serpent)
|
||||
PIXELS gen_pastille(PIXELS *serpent,PIXELS *pastilles,PIXELS *obstacle,int longueur_serpent,int longueur_obstacle)
|
||||
|
||||
/* nb_pastille = int nombre de pastille voulue , p_pastilles est un pointeur d'un tableau de pixels qui sont des pastilles*/
|
||||
/*-Elles se génèrent à des endroits qui peuvent être les mêmes ou gêner le snake*/
|
||||
@@ -40,6 +40,18 @@ PIXELS gen_pastille(PIXELS *serpent,PIXELS *pastilles,int longueur_serpent)
|
||||
}
|
||||
|
||||
}
|
||||
for(i=0;i<longueur_obstacle;i++)
|
||||
{
|
||||
if(x_pastille == obstacle[i].x && y_pastille == obstacle[i].y)
|
||||
{
|
||||
ok = 1; /* Check si la pastille se genère sur une coordonné du serpent */
|
||||
}
|
||||
if(x_pastille == pastilles[i].x && y_pastille == pastilles[i].y)
|
||||
{
|
||||
ok = 1;
|
||||
}
|
||||
|
||||
}
|
||||
}while(ok);
|
||||
|
||||
if(x_pastille < DECALEMENT)
|
||||
@@ -59,6 +71,61 @@ PIXELS gen_pastille(PIXELS *serpent,PIXELS *pastilles,int longueur_serpent)
|
||||
return pastille;
|
||||
}
|
||||
|
||||
PIXELS gen_obstacle(PIXELS *serpent,PIXELS *pastilles,PIXELS *obstacle,int longueur_serpent,int longueur_pastilles)
|
||||
|
||||
/* nb_pastille = int nombre de pastille voulue , p_pastilles est un pointeur d'un tableau de pixels qui sont des pastilles*/
|
||||
/*-Elles se génèrent à des endroits qui peuvent être les mêmes ou gêner le snake*/
|
||||
{
|
||||
int x_obstacles,y_obstacles,i;
|
||||
int ok = 0;
|
||||
PIXELS obstacles;
|
||||
do{
|
||||
ok = 0;
|
||||
x_obstacles= ArrondirPixel(rand()%W_GAME);
|
||||
y_obstacles = ArrondirPixel(rand()%H_GAME);
|
||||
for(i=0;i<longueur_serpent;i++)
|
||||
{
|
||||
if(x_obstacles == serpent[i].x && y_obstacles == serpent[i].y)
|
||||
{
|
||||
ok = 1; /* Check si la pastille se genère sur une coordonné du serpent */
|
||||
}
|
||||
if(x_obstacles == obstacle[i].x && y_obstacles == obstacle[i].y)
|
||||
{
|
||||
ok = 1;
|
||||
}
|
||||
|
||||
}
|
||||
for(i=0;i<longueur_pastilles;i++)
|
||||
{
|
||||
if(x_obstacles == pastilles[i].x && y_obstacles == pastilles[i].y)
|
||||
{
|
||||
ok = 1; /* Check si la pastille se genère sur une coordonné du serpent */
|
||||
}
|
||||
if(x_obstacles == obstacle[i].x && y_obstacles == obstacle[i].y)
|
||||
{
|
||||
ok = 1;
|
||||
}
|
||||
|
||||
}
|
||||
}while(ok);
|
||||
|
||||
if(x_obstacles < DECALEMENT)
|
||||
{
|
||||
x_obstacles =+ DECALEMENT;
|
||||
}
|
||||
|
||||
if(y_obstacles < DECALEMENT)
|
||||
{
|
||||
y_obstacles =+ DECALEMENT;
|
||||
}
|
||||
|
||||
|
||||
obstacles.x = x_obstacles ;
|
||||
obstacles.y = y_obstacles ;
|
||||
|
||||
return obstacles;
|
||||
}
|
||||
|
||||
void InitialisationDuSerpent(PIXELS *p_serpent) /* L'initialisation du serpent */
|
||||
{
|
||||
int x_millieu = 0, y_millieu = 0 , compteur = 0;
|
||||
@@ -78,18 +145,29 @@ void InitialisationDuSerpent(PIXELS *p_serpent) /* L'initialisation du serpent *
|
||||
}
|
||||
}
|
||||
|
||||
void InitialiserPastilles(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) {
|
||||
void InitialiserPastilles(PIXELS *pastilles, PIXELS *serpent,PIXELS *obstacle, int longueur_serpent,int longueur_obstacle) {
|
||||
int i;
|
||||
|
||||
srand(time(NULL));
|
||||
|
||||
for (i = 0; i < PASTILLES; i++) {
|
||||
pastilles[i] = gen_pastille(serpent,pastilles,longueur_serpent);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
void DessinerScene(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) /* Dessine la scène */
|
||||
void InitialiserObstacle(PIXELS *pastilles, PIXELS *serpent,PIXELS *obstacle, int longueur_serpent,int longueur_pastilles) {
|
||||
int i;
|
||||
|
||||
srand(time(NULL));
|
||||
|
||||
for (i = 0; i < OBSTACLE; i++) {
|
||||
obstacle[i] = gen_obstacle(serpent,pastilles,obstacle,longueur_serpent,longueur_pastilles);
|
||||
ChargerImage("./images/Danger.png",obstacle[i].x,obstacle[i].y,0,0,T_PIXEL,T_PIXEL);
|
||||
}
|
||||
}
|
||||
|
||||
void DessinerScene(PIXELS *pastilles, PIXELS *serpent,PIXELS *obstacle, int longueur_serpent,int longueur_pastilles,int longueur_obstacle) /* Dessine la scène */
|
||||
{
|
||||
couleur bg;
|
||||
couleur border;
|
||||
@@ -108,6 +186,7 @@ void DessinerScene(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) /*
|
||||
|
||||
ChoisirCouleurDessin(bg);
|
||||
RemplirRectangle(T_PIXEL,T_PIXEL,W_GAME,H_GAME);
|
||||
InitialiserPastilles(pastilles,serpent,longueur_serpent);
|
||||
InitialisationDuSerpent(serpent);
|
||||
InitialiserPastilles(pastilles,serpent,obstacle,longueur_serpent,longueur_obstacle);
|
||||
InitialiserObstacle(pastilles,serpent,obstacle,longueur_serpent,longueur_pastilles);
|
||||
}
|
||||
Reference in New Issue
Block a user