diff --git a/resources/Maps.txt b/resources/Maps.txt index 9f3373d00e6ff1cb9636489a0debaa57dade2d7f..707789f33827b43b93173e1a8815e0a4aae25878 100644 --- a/resources/Maps.txt +++ b/resources/Maps.txt @@ -34,25 +34,19 @@ FFPFMP MAP4 16 10 -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM -MPPFFPPPFM +MPPFFPPPFMMPPFFP +PPFMMPPFFPPPFMMP +PFFPPPFMMPPFFPPP +FMMPPFFPPPFMMPPF +FPPPFMMPPFFPPPFM +MPPFFPPPEMMPPFFP +PPFMMEEEFPPPFMMP +PFFPPPEEMPPFFPPP +FMMPPFFPPPFMMPPF +FPPPFMMPPFFPPPFM -MAP5 16 10 +MAP5 10 16 MPPFFPPPFM MPPFFPPPFM @@ -69,4 +63,5 @@ MPPFFPPPFM MPPFFPPPFM MPPFFPPPFM MPPFFPPPFM -MPPFFPPPFM \ No newline at end of file +MPPFFPPPFM + diff --git a/resources/case_brillante.bmp b/resources/case_brillante.bmp index 3404ed557f71b7478cb5452288a380eae35d46ac..c8b230bbb3134a6e490e884e616ad209e61fcdb4 100644 Binary files a/resources/case_brillante.bmp and b/resources/case_brillante.bmp differ diff --git a/resources/foret.bmp b/resources/foret.bmp index ed15b2dfc38a584980251eae08a6cb111f809678..f2a60466e58a6620326ac82f02c583bb83b9b1b2 100644 Binary files a/resources/foret.bmp and b/resources/foret.bmp differ diff --git a/resources/montagne.bmp b/resources/montagne.bmp index 7f9d39d2351285b70850afa38de5448b2481111a..13c39287958ea3a0363709fb8e2f3ed135c60490 100644 Binary files a/resources/montagne.bmp and b/resources/montagne.bmp differ diff --git a/src/SDL.c b/src/SDL.c index 49a9b001f49e8003cb53dcb3507d25cc92ad0dc4..4c30a8f7038bb0a78846b5e9f4dbb3162825b2a4 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -16,7 +16,7 @@ */ -int main_SDL() +int main_SDL(char* Map) { int i,j,affichermenu; SDL_Surface* ecran=NULL; @@ -58,10 +58,10 @@ int main_SDL() SDL_WM_SetCaption("Elder Internal Ignition",NULL); - pos_bouton_quitter.x=(LARGEUR_CARTE*LARGEUR_CASE)/2; - pos_bouton_continuer.x=(LARGEUR_CARTE*LARGEUR_CASE)/2; - pos_bouton_quitter.y=(HAUTEUR_CARTE*HAUTEUR_CASE)/2+30; - pos_bouton_continuer.y=(HAUTEUR_CARTE*HAUTEUR_CASE)/2-30; + pos_bouton_quitter.x=(LARGEUR_CARTE*LARGEUR_CASE-LARGEUR_BOUTON)/2; + pos_bouton_continuer.x=(LARGEUR_CARTE*LARGEUR_CASE-LARGEUR_BOUTON)/2; + pos_bouton_quitter.y=(HAUTEUR_CARTE*HAUTEUR_CASE-HAUTEUR_BOUTON)/2+HAUTEUR_BOUTON; + pos_bouton_continuer.y=(HAUTEUR_CARTE*HAUTEUR_CASE-HAUTEUR_BOUTON)/2-HAUTEUR_BOUTON; guerrier = SDL_LoadBMP("../resources/guerrier.bmp"); if (!guerrier) @@ -180,33 +180,62 @@ int main_SDL() while(quitter==0) { SDL_WaitEvent(&event); - switch(event.type) /* Test du type d'événement */ - { - case SDL_QUIT: /* Si c'est un événement de type "Quitter" */ - quitter=1; - break; - case SDL_MOUSEBUTTONDOWN: - deplacement_personnage(event.button.x,event.button.y); + if(affichermenu==1){ + switch(event.type) /* Test du type d'événement */ + { + case SDL_QUIT: /* Si c'est un événement de type "Quitter" */ + quitter=1; + break; + case SDL_MOUSEBUTTONDOWN: + if(pos_bouton_continuer.x<event.button.x&&event.button.x<pos_bouton_continuer.x+LARGEUR_BOUTON){ + if(pos_bouton_continuer.y<event.button.y&&event.button.y<pos_bouton_continuer.x+HAUTEUR_BOUTON){ + affichermenu=0; + } + if(pos_bouton_quitter.y<event.button.y&&event.button.y<pos_bouton_quitter.x+HAUTEUR_BOUTON){ + quitter=1; + } + } + break; + case SDL_KEYDOWN:/* Si c'est un événement de type "touche pressée" */ + switch(event.key.keysym.sym){ + case SDLK_ESCAPE: + affichermenu=0; + break; + default: + quitter=0; + } break; - case SDL_MOUSEMOTION: - if(event.motion.x<LARGEUR_CARTE*LARGEUR_CASE&&event.motion.y<HAUTEUR_CARTE*HAUTEUR_CASE) - { - x_case_brillante = get_position_case_x(deplacement_brillance(event.motion.x,event.motion.y)); - y_case_brillante = get_position_case_y(deplacement_brillance(event.motion.x,event.motion.y)); - } + } + } + else{ + switch(event.type) /* Test du type d'événement */ + { + case SDL_QUIT: /* Si c'est un événement de type "Quitter" */ + quitter=1; + break; + case SDL_MOUSEBUTTONDOWN: + deplacement_personnage(event.button.x,event.button.y); + break; + case SDL_MOUSEMOTION: + if(event.motion.x<LARGEUR_CARTE*LARGEUR_CASE&&event.motion.y<HAUTEUR_CARTE*HAUTEUR_CASE) + { + x_case_brillante = get_position_case_x(deplacement_brillance(event.motion.x,event.motion.y)); + y_case_brillante = get_position_case_y(deplacement_brillance(event.motion.x,event.motion.y)); + } + break; + case SDL_KEYDOWN:/* Si c'est un événement de type "touche pressée" */ + switch(event.key.keysym.sym){ + case SDLK_n: + persosuivant(); + break; + case SDLK_ESCAPE: + affichermenu=1; + break; + default: + quitter=0; + } break; - case SDL_KEYDOWN:/* Si c'est un événement de type "touche pressée" */ - switch(event.key.keysym.sym){ - case SDLK_n: - persosuivant(); - break; - case SDLK_ESCAPE: - affichermenu=1; - break; - default: - quitter=0; - } - break; + } } for(i=0;i<NB_PERSO;i++){ Position_Perso[i].x=get_position_perso_x(i); @@ -219,7 +248,22 @@ int main_SDL() { for(i=0;i<LARGEUR_CARTE*HAUTEUR_CARTE;i++) { - SDL_BlitSurface(plaine,NULL,ecran,&Position_Case[i]); + switch(Map[i]) + { + case 80: //"P" en ASCII + SDL_BlitSurface(plaine,NULL,ecran,&Position_Case[i]); + break; + case 70: //"F" en ASCII + SDL_BlitSurface(foret,NULL,ecran,&Position_Case[i]); + break; + case 69: //"E" en ASCII + SDL_BlitSurface(eau,NULL,ecran,&Position_Case[i]); + break; + case 77: //"M" en ASCII + SDL_BlitSurface(montagne,NULL,ecran,&Position_Case[i]); + break; + } + } SDL_BlitSurface(Case_brillante,NULL,ecran,&Position_Case_brillante); for(i=0;i<NB_PERSO;i++) diff --git a/src/SDL.h b/src/SDL.h index efc34f953da2cafaa6f1886bf00642fdad52853c..482dc8c364be81e96a553fb264e0af9fe2223ab2 100644 --- a/src/SDL.h +++ b/src/SDL.h @@ -12,8 +12,10 @@ #define LARGEUR_CASE 53 #define HAUTEUR_CASE 71 #define NB_PERSO 3 +#define HAUTEUR_BOUTON 20 +#define LARGEUR_BOUTON 115 -int main_SDL(); +int main_SDL(char* Map); #endif diff --git a/src/main.c b/src/main.c index 7790bf78f67f061debdc98234018ce3c9f63c4fa..ebc090fb6010ce8596452bea24f5fb8cd56c5291 100644 --- a/src/main.c +++ b/src/main.c @@ -80,12 +80,10 @@ init_jeu("../resources/Init_jeu.xml"); char *Map_A = ExtraireCarte(4); -printf("La valeur choisie est : %c\n", Map_A[0]); - - -main_SDL(); +printf("Map en version texte : %s\n", Map_A); +main_SDL(Map_A); return 0;