choix map fonctionne, a faire : score , affichage lose et win, custom.
Petit fix pour la lose 1 touché
This commit is contained in:
@@ -51,5 +51,6 @@ vect plusVect (vect one, vect two);
|
|||||||
int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets,
|
int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets,
|
||||||
int nbr_targets, dis *display_user, score *score_user, bool menu);
|
int nbr_targets, dis *display_user, score *score_user, bool menu);
|
||||||
char *timeToText(time_t time);
|
char *timeToText(time_t time);
|
||||||
|
void nullScore(score *player_score);
|
||||||
|
|
||||||
#endif // FONCTION_H
|
#endif // FONCTION_H
|
||||||
|
|||||||
@@ -307,6 +307,8 @@ int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets,
|
|||||||
switch (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
case SDL_SCANCODE_ESCAPE:
|
||||||
|
if(menu) return 0;
|
||||||
|
return -1;
|
||||||
finish = true;
|
finish = true;
|
||||||
break;
|
break;
|
||||||
case SDL_SCANCODE_D:
|
case SDL_SCANCODE_D:
|
||||||
@@ -396,10 +398,9 @@ int inGameLoop (char **tab2d, vect *dim_tab, vect *playerPos, vect *targets,
|
|||||||
vect size_txt = { display_user->size_menu,
|
vect size_txt = { display_user->size_menu,
|
||||||
display_user->size_window };
|
display_user->size_window };
|
||||||
char txt_empty[100]
|
char txt_empty[100]
|
||||||
= " "
|
= "Echap pour quitter ";
|
||||||
" ";
|
|
||||||
displayTextSDL (display_user, txt_empty, coor_time,
|
displayTextSDL (display_user, txt_empty, coor_time,
|
||||||
size_txt, 100);
|
size_txt, 80);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -614,3 +615,11 @@ char *timeToText (time_t time)
|
|||||||
snprintf (result, 20, "Time : %02d:%02d", min, sec);
|
snprintf (result, 20, "Time : %02d:%02d", min, sec);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void nullScore(score *player_score)
|
||||||
|
{
|
||||||
|
player_score->after = 0;
|
||||||
|
player_score->before = 0;
|
||||||
|
player_score->move_box = 0;
|
||||||
|
player_score->move_player = 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -24,37 +24,66 @@ int main ()
|
|||||||
initSDL (&display_user);
|
initSDL (&display_user);
|
||||||
|
|
||||||
vect *playerPos = (vect *)malloc (sizeof (vect));
|
vect *playerPos = (vect *)malloc (sizeof (vect));
|
||||||
vect *targets;
|
vect *targets = {0};
|
||||||
int nbr_targets;
|
int nbr_targets;
|
||||||
score playerScore;
|
score playerScore = {0};
|
||||||
char **tab2d = creatArea2D (SIZE_PLAY, SIZE_PLAY);
|
char **tab2d = creatArea2D (SIZE_PLAY, SIZE_PLAY);
|
||||||
|
|
||||||
score score_user = {0, 0, 0,0};
|
score score_user = {0, 0, 0,0};
|
||||||
|
vect dim = {SIZE_PLAY, SIZE_PLAY};
|
||||||
|
int output = -1;
|
||||||
|
|
||||||
vect dim_menu = {0, 0};
|
vect dim_menu = {0, 0};
|
||||||
vect pos = {4, 1};
|
vect pos = {4, 1};
|
||||||
char**menu = generatorMenu("maps", &dim_menu, &pos);
|
char**menu = generatorMenu("maps", &dim_menu, &pos);
|
||||||
printf("x %d, y %d\n", dim_menu.x, dim_menu.y);
|
|
||||||
|
|
||||||
screenDisplay(menu, dim_menu.x, dim_menu.y);
|
|
||||||
|
|
||||||
|
|
||||||
targets
|
vect null = {0, 0};
|
||||||
= fileToTab2D ("maps/original_1.txt", tab2d, SIZE_PLAY, playerPos, &nbr_targets);
|
printf("output : %d\n", output);
|
||||||
inGameLoop (menu, &dim_menu, &pos, targets, nbr_targets,
|
output = inGameLoop (menu, &dim_menu, &pos, &null , 1,
|
||||||
&display_user, &score_user, true);
|
&display_user, &score_user, true);
|
||||||
|
nullScore(&score_user);
|
||||||
SDL_RenderClear(display_user.renderer);
|
SDL_RenderClear(display_user.renderer);
|
||||||
vect dim = {SIZE_PLAY, SIZE_PLAY};
|
|
||||||
inGameLoop (tab2d, &dim, playerPos, targets, nbr_targets,
|
|
||||||
&display_user, &score_user, false);
|
while(output != 0)
|
||||||
|
{
|
||||||
|
SDL_RenderClear(display_user.renderer);
|
||||||
|
if(output == -1)
|
||||||
|
{
|
||||||
|
menu = generatorMenu("maps", &dim_menu, &pos);
|
||||||
|
pos.x = 4; pos.y = 1;
|
||||||
|
output = inGameLoop(menu, &dim_menu, &pos, &null, 1, &display_user, &score_user, true);
|
||||||
|
nullScore(&score_user);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char txt[30] = "";
|
||||||
|
if(output <= 3)
|
||||||
|
{
|
||||||
|
snprintf(txt, 30, "maps/original_%d.txt", output);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(txt, 30, "maps/custom_%d.txt", output - 4);
|
||||||
|
}
|
||||||
|
if (targets != NULL) free(targets);
|
||||||
|
if (tab2d != NULL) free2D(tab2d, SIZE_PLAY);
|
||||||
|
tab2d = creatArea2D(SIZE_PLAY, SIZE_PLAY);
|
||||||
|
targets = fileToTab2D(txt, tab2d, SIZE_PLAY, playerPos, &nbr_targets);
|
||||||
|
output = inGameLoop(tab2d, &dim, playerPos, targets, nbr_targets, &display_user, &score_user, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//screenDisplay(tab2d, SIZE_PLAY, SIZE_PLAY);
|
//screenDisplay(tab2d, SIZE_PLAY, SIZE_PLAY);
|
||||||
SDL_DestroyWindow (display_user.window);
|
SDL_DestroyWindow (display_user.window);
|
||||||
SDL_DestroyRenderer (display_user.renderer);
|
SDL_DestroyRenderer (display_user.renderer);
|
||||||
free2D (tab2d, SIZE_PLAY);
|
if (tab2d != NULL)free2D (tab2d, SIZE_PLAY);
|
||||||
free (playerPos);
|
if (playerPos != NULL)free (playerPos);
|
||||||
free (targets);
|
if (targets != NULL)free (targets);
|
||||||
SDL_Quit ();
|
SDL_Quit ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user