From c4959e36aec3d41695762ca90db9c1090d5b7f6b Mon Sep 17 00:00:00 2001 From: Henri Montjoie <henri.montjoie@insa-rennes.fr> Date: Sat, 23 Apr 2016 00:47:59 +0200 Subject: [PATCH] possibilite de controler plusieurs personnages --- resources/archer.bmp | Bin 0 -> 15606 bytes src/Classes_XML_log | 52 +++++++++++++++++++++++++++++++++++++++++++ src/SDL.c | 11 ++++++--- src/Terrains_XML_log | 43 +++++++++++++++++++++++++++++++++++ src/controleurSDL.c | 11 ++++++--- src/controleurSDL.h | 4 +++- src/main.c | 6 ++--- 7 files changed, 117 insertions(+), 10 deletions(-) create mode 100644 resources/archer.bmp diff --git a/resources/archer.bmp b/resources/archer.bmp new file mode 100644 index 0000000000000000000000000000000000000000..511a7f2984b6b64f924d81b05f337c554fb053f9 GIT binary patch literal 15606 zcmeI%KWJTL9LDh*5ZcfX<DZ(_W~$ZNMh%og7DXgdm4bsoK`NaB4z&(iH-$P>ac~d` z3JyZS)!nh6#7P%1V{ws=-HJHm`nmV9FQ+HzMSF{R1LyGO<#*omp3~?1dw%bG?!8@k z<>s@!(Xp&Q?(gM){-%2U(fC!@f1J(VXh1jUT9<(?16>BX40IXjGSFq9%fSDefsfz1 zxV`Q5Ph~Blxm!nTymdOB`aew`|ERmZ+SGvQ?bVa(pRMV&lPCJktCPfcEpL(=i(nw2 zu3z8S*jNu8(sFftkennT`qt!0<V|vKkwFr!t*tG6(7=v2E|u#>*(mom6Ecag$?pvs zgn}lBT7ylUB?*Gq6o2(Wb61%^xv+ck1X59yB_>F$FH#Gak><=Kp*ARbk{Pna1Sk3b zhAWc`W5Dl8o+p2ZH6{Of4$HE87>wF-shE`@b!(3KWl5emb8&J#_v8r-g5Ze$sC61T zvW@Kc54lm}tjT(@C#+uHtOSknPy{VpbZX*ry>E(NO*(_Fy4N%r0Oe}`sne(5{k|$L z@^H~f9?f)$L0x(C#*S#_I9v*y*o}yAojUjV+>w=L5_TnqkdkY15!`?}J~wx~r7cjX zfBx=fD$oRefr3^Q7rImw&CkE|&SLL%?S(5pJ$d$9r*R~7`}XZas)Zd|xf;uAD8-aq zEK`k1K9I+cyr>5St;q%I*mIY1b>Xq)IJ>?v2r|nm**XeWHi2YbPk9sVp~Y7b5wFj9 zvGU--M_XK~F_^pCLyJ@TY#q}F7B%`&6xX2n&D^OL69u4%Z*tYMC58)8v21>Re*Z^T ziPu!!FkbsotSmJnS#-GazXNJ7)>O6CtGW;c(5Y1ejeZSIYEqw(oH7(|xGMB36hT7= zExQ~p9sx-~9$PwJ8m>UO+T!vYi>rqHFcj(k`0X#vTZue%MZ6|Pbg8##JQJJ_2X8@{ zS?Vxcsxf7`i#;Wvyn|@gi;XyzmlmjU7y-3#_&{m-5E7@Nyh1L*0-^#nIN24&E`fUQ zjb-iYFU}kHniFV7T*_t$(E1vtVDu<v)!<hW9y(B#Sl-d$GE%rg6hMP0yan_Ml3!Vg zK0#Sr5>+0%>j8z?74_NiW@cvk{l4-GQOmDzWe?$(mAJb83$72Y4XQ$;lShH_Vj>t9 zwZ$(!rVi7G%N}B8xY&ef<HkU%%`zg($BDwF8e1(}r8@M22B;2!#Hmkz|8p>?j*CcW zn%6O|>?H9~9r`X)b`@y296t7kOC5r$stB!aha!X!H2D`7qAV_4sYa(R#kJv$qy5k= zj!M3NHTNqDoBGAkAKv?)KAYy$cm|<)0<Js<7w=fsd~6MITnk;4^JV12ZC$x!{_vLD zxhnad(#j{DVTe14Sz!5SSw05inz9^vH>yL=8IErZ_xaW{cl{L9gR@Iv(fe73>_FKQ zwBbu?bY$u2TYgo@Md2fdU(=vzf#OS8K;^{*)1a&7J9ts*&?l%mxehH}2wHwXV}~HM zmpUAJb!0{P1uX?uxQ5PN-mGeU$^3_({Hi~C<|}l{FKE#(E-e)ZO%N_D3HVjjemFPx zK%h=Nv)1cPp<@f#@hfQh(lQ<vec|F%J-=^EPapM}VQT6=P@#+9_!T<#3DUQUa64BG zzl&1!e(wig6`?hujK?x8Y|4I~&l@eX%*^^ygv?@DC0v{ent;gCaK$oE*9HTC;YwMS zX@$$CQBM&@9->42hnrFp7t2BvI)1fgW_@LGRbp04q0`><(dJ+iE$gd!H8CzYDZ=en zYZw8gCR=D_hZpQ9()z03EE`CZOPsbNQ3m<NtZFNeNC^2EEwNLW92^4$Cv`YxP7Rj= zg2*pvdOs@a?<8!mKm~_ES!K{dcPB36HJ4wJ&8)nm0SdP7A!X*?3gE=7@#VL-prZDP g+5PCWy(qrZ+-0E4K$n3o16>BX40IXjG9Uwg18-BTKmY&$ literal 0 HcmV?d00001 diff --git a/src/Classes_XML_log b/src/Classes_XML_log index e69de29..e2cc38a 100644 --- a/src/Classes_XML_log +++ b/src/Classes_XML_log @@ -0,0 +1,52 @@ +Fichier decrivant le deroulement de la procedure d'aquisition des classes + +I) Chargement du fichier XML - Definition des noeuds +Le fichier contient 5 classes +II) Chargement des classes +1) Memoire allouee avec succes +La memoire allouee fait 80 octets + +Chargement de la classe numero 1 +Id : C_MAGE +Nom : Mage +PV : 100 +PM : 150 +MV : 2 +DESC : Le feu, ça brûle +Insertion de la classe 1 dans le tableau + +Chargement de la classe numero 2 +Id : C_WAR +Nom : Guerrier +PV : 200 +PM : 150 +MV : 2 +DESC : Aime beaucoup le street art +Insertion de la classe 2 dans le tableau + +Chargement de la classe numero 3 +Id : C_HEAL +Nom : Guerrisseur +PV : 100 +PM : 150 +MV : 2 +DESC : Heal est des notres +Insertion de la classe 3 dans le tableau + +Chargement de la classe numero 4 +Id : C_ROGUE +Nom : Voleur +PV : 100 +PM : 150 +MV : 2 +DESC : 60 minutes, ça vaut l'heure +Insertion de la classe 4 dans le tableau + +Chargement de la classe numero 5 +Id : C_ARCHER +Nom : Archer +PV : 100 +PM : 150 +MV : 2 +DESC : Gérard, de son prénom +Insertion de la classe 5 dans le tableau diff --git a/src/SDL.c b/src/SDL.c index 436ca95..b3461c8 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -162,7 +162,7 @@ int main_SDL() quitter=1; break; case SDL_MOUSEBUTTONDOWN: - deplacement_personnage(0,event.button.x,event.button.y); + 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) @@ -173,6 +173,9 @@ int main_SDL() 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: quitter=1; break; @@ -181,8 +184,10 @@ int main_SDL() } break; } - Position_Perso[0].x=get_position_perso_x(0); - Position_Perso[0].y=get_position_perso_y(0); + for(i=0;i<NB_PERSO;i++){ + Position_Perso[i].x=get_position_perso_x(i); + Position_Perso[i].y=get_position_perso_y(i); + } Position_Case_brillante.x=x_case_brillante; Position_Case_brillante.y=y_case_brillante; SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,0,0,0)); diff --git a/src/Terrains_XML_log b/src/Terrains_XML_log index e69de29..716eba7 100644 --- a/src/Terrains_XML_log +++ b/src/Terrains_XML_log @@ -0,0 +1,43 @@ +Fichier decrivant le deroulement de la procedure d'aquisition des Terrains + +I) Chargement du fichier Terrains XML - Definition des noeuds +Le fichier contient 4 terrains +II) Chargement des terrains +1) Memoire allouee avec succes +La memoire allouee fait 64 octets + +Chargement du terrain numero 1 +Id : G_PLAIN +Nom : Plaine +FR : 1 +FRS : 1 +PDR : 1 +DESC : Plaine de bon sens +Insertion du terrain 1 dans le tableau + +Chargement du terrain numero 2 +Id : G_RIVER +Nom : Riviere +FR : 0 +FRS : 1 +PDR : 1 +DESC : River, arrete de river +Insertion du terrain 2 dans le tableau + +Chargement du terrain numero 3 +Id : G_FOREST +Nom : Foret +FR : 1 +FRS : 1 +PDR : 2 +DESC : Le frère de Fopart +Insertion du terrain 3 dans le tableau + +Chargement du terrain numero 4 +Id : G_MOUNT +Nom : Montagne +FR : 0 +FRS : 0 +PDR : 0 +DESC : Montagne est plus haut que tontagne +Insertion du terrain 4 dans le tableau diff --git a/src/controleurSDL.c b/src/controleurSDL.c index fb1f44d..1d96957 100644 --- a/src/controleurSDL.c +++ b/src/controleurSDL.c @@ -18,6 +18,7 @@ Carte Carte_actuelle; Personnage ListePersos[NB_PERSO]; +int perso_actuel=0; void init_controleur(SDL_Rect Position_Case[]) @@ -27,7 +28,8 @@ void init_controleur(SDL_Rect Position_Case[]) { init_case(&Carte_actuelle[i],Position_Case[i].x,Position_Case[i].y,NULL); } - init_personnage(&ListePersos[0],NULL,&Carte_actuelle[0]); + for(i=0;i<NB_PERSO;i++) + init_personnage(&ListePersos[i],NULL,&Carte_actuelle[i]); } int x_case_cliquee(int x_pixel, int y_pixel) @@ -63,13 +65,16 @@ Case * trouverCase(Carte c, int x, int y) } } +persosuivant(){ + perso_actuel++; +} -void deplacement_personnage(int num, int x, int y) +void deplacement_personnage(int x, int y) { if(x<LARGEUR_CARTE*LARGEUR_CASE&&y<HAUTEUR_CARTE*HAUTEUR_CASE) { Case* case_cliquee = trouverCase(Carte_actuelle,x_case_cliquee(x,y),y_case_cliquee(x,y)); - Personnage* perso = &ListePersos[num]; + Personnage* perso = &ListePersos[perso_actuel]; if (case_a_cote(perso,case_cliquee,HAUTEUR_CASE,LARGEUR_CASE)==vrai) { deplacer_personnage(perso, case_cliquee); diff --git a/src/controleurSDL.h b/src/controleurSDL.h index fcd7168..41d571d 100644 --- a/src/controleurSDL.h +++ b/src/controleurSDL.h @@ -13,7 +13,7 @@ int x_case_cliquee(int x_pixel, int y_pixel); Case * trouverCase(Carte c, int x, int y); -void deplacement_personnage(int num, int x, int y); +void deplacement_personnage(int x, int y); Case* get_case_perso(int num); @@ -29,5 +29,7 @@ int get_position_case_y(Case * Case); int get_position_case_x(Case * Case); +void persosuivant(); + #endif diff --git a/src/main.c b/src/main.c index 3d2e395..f73765d 100644 --- a/src/main.c +++ b/src/main.c @@ -71,12 +71,12 @@ int main() init_jeu("../resources/Init_jeu.xml"); -/* Pour Henri <3 */ - +/* Pour Henri <3 printf("La case choisie est : %c\n",LireCarte("../resources/Maps.txt",3)[0]); + */ -//main_SDL(); +main_SDL(); -- GitLab