Skip to content

Commit afd77f1

Browse files
committed
sortie de la maison
1 parent 08c7cda commit afd77f1

File tree

6 files changed

+41
-45
lines changed

6 files changed

+41
-45
lines changed

bin/prog.exe

-57 Bytes
Binary file not shown.

src/head/constante.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#define TAILLE_BLOC 17
2-
#define WINDOW_WITDH 800
3-
#define WINDOW_HEIGHT 600
2+
#define WINDOW_WITDH 791
3+
#define WINDOW_HEIGHT 575
44
#define WINDOWMAISON_WITDH 285
55
#define WINDOWMAISON_HEIGHT 226
66

@@ -23,11 +23,11 @@ void afficher(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect positionjou
2323
void initialiserCarte(int carte[][45]);
2424

2525
void deplacerjoueur(int carte[][45], SDL_Rect *pos, int direction);
26-
void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionjoueur, int carte[][45], bool keys[322]);
26+
void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionjoueur, int carte[][45], bool keys[322],int *direction);
2727
bool devantPort(SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45]);
2828
bool sortmaison(SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45]);
2929

30-
void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45]);
30+
void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45], int direction);
3131
void celebretion(SDL_Rect positionjoueur, SDL_Renderer *rendu);
3232

3333

src/head/jouer.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ enum
2424
};
2525

2626
int carte[35][45];
27-
27+
int direction;
2828

2929
void jouer(SDL_Surface *fond);
3030

src/src/jouer.c

+7-5
Original file line numberDiff line numberDiff line change
@@ -353,11 +353,12 @@ void jouer(SDL_Surface *fond){
353353
CELEB[1] = SDL_LoadBMP("src/img/celebration1.bmp");
354354
CELEB[2] = SDL_LoadBMP("src/img/celebration2.bmp");
355355

356-
int direction;
356+
357357
LinkActuel=BAS[3];
358358
positionjoueur.x=4;
359359
positionjoueur.y=4;
360-
360+
direction=bas;
361+
361362

362363
fond = SDL_LoadBMP("src/img/zeldamap.bmp");
363364
window=SDL_CreateWindow("ZELDA !", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WITDH, WINDOW_HEIGHT, 0);
@@ -389,19 +390,20 @@ void jouer(SDL_Surface *fond){
389390
break;
390391
case SDL_KEYDOWN:
391392
keys[event.key.keysym.scancode] = true;
392-
mouvement(rendu,LinkActuel,&positionjoueur,carte,keys);
393+
mouvement(rendu,LinkActuel,&positionjoueur,carte,keys,&direction);
393394
if (devantPort(positionjoueur, rendu, carte)){
394395
SDL_DestroyWindow(window);
395-
initialiserCarte(carte);
396396
continuer=2;
397397
maison(fond);
398398
}
399+
400+
399401
switch (event.key.keysym.sym){
400402
case SDLK_ESCAPE:
401403
continuer = 0;
402404
break;
403405
case SDLK_SPACE:
404-
epee(LinkActuel, positionjoueur, rendu, carte);
406+
epee(LinkActuel, positionjoueur, rendu, carte, direction);
405407
break;
406408
case SDLK_c:
407409
celebretion(positionjoueur,rendu);

src/src/link.c

+23-31
Original file line numberDiff line numberDiff line change
@@ -52,31 +52,13 @@ void deplacerjoueur(int carte[][45], SDL_Rect *pos, int direction)
5252
}
5353
}
5454

55-
void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45])
55+
void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45], int direction)
5656
{
57-
int etat, i;
57+
int i;
5858
const Uint8 *keystates = SDL_GetKeyboardState(NULL);
5959
SDL_Surface *LinkEpee;
60-
if ((LinkActuel == BAS[1]) || (LinkActuel == BAS[2]) || (LinkActuel == BAS[3]))
61-
{
62-
etat = 1;
63-
}
64-
else if ((LinkActuel == HAUT[1]) || (LinkActuel == HAUT[2]) || (LinkActuel == HAUT[3]))
65-
{
66-
etat = 2;
67-
}
68-
else if ((LinkActuel == GAUCHE[1]) || (LinkActuel == GAUCHE[2]) || (LinkActuel == GAUCHE[3]))
69-
{
70-
etat = 3;
71-
}
72-
else if ((LinkActuel == DROITE[1]) || (LinkActuel == DROITE[2]) || (LinkActuel == DROITE[3]))
73-
{
74-
etat = 4;
75-
}
7660

77-
switch (etat)
78-
{
79-
case 1:
61+
if(direction==bas){
8062
while (keystates[SDL_SCANCODE_SPACE])
8163
{
8264
i = 1;
@@ -105,7 +87,8 @@ void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu,
10587
afficher(rendu, LinkEpee, positionjoueur);
10688
SDL_Delay(70);
10789
}
108-
case 2:
90+
}
91+
else if (direction==haut){
10992
while (keystates[SDL_SCANCODE_SPACE])
11093
{
11194
i = 1;
@@ -126,8 +109,8 @@ void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu,
126109
afficher(rendu, LinkEpee, positionjoueur);
127110
SDL_Delay(100);
128111
}
129-
break;
130-
case 3:
112+
}
113+
else if(direction==gauche){
131114
while (keystates[SDL_SCANCODE_SPACE])
132115
{
133116
i = 1;
@@ -155,8 +138,8 @@ void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu,
155138
afficher(rendu, LinkEpee, positionjoueur);
156139
SDL_Delay(100);
157140
}
158-
break;
159-
case 4:
141+
}
142+
else if(direction==droite){
160143
while (keystates[SDL_SCANCODE_SPACE])
161144
{
162145
i = 1;
@@ -184,9 +167,6 @@ void epee(SDL_Surface *LinkActuel, SDL_Rect positionjoueur, SDL_Renderer *rendu,
184167
afficher(rendu, LinkEpee, positionjoueur);
185168
SDL_Delay(100);
186169
}
187-
break;
188-
default:
189-
break;
190170
}
191171
}
192172

@@ -224,7 +204,7 @@ void celebretion(SDL_Rect positionjoueur, SDL_Renderer *rendu){
224204

225205

226206

227-
void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionjoueur, int carte[][45], bool keys[322]){
207+
void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionjoueur, int carte[][45], bool keys[322], int *direction){
228208
const Uint8 *keystates = SDL_GetKeyboardState(NULL);
229209
int i,j;
230210
if (keys[SDL_SCANCODE_UP])
@@ -243,6 +223,7 @@ void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionj
243223
}
244224
LinkActuel = HAUT[3];
245225
afficher(rendu, LinkActuel, *positionjoueur);
226+
*direction = haut;
246227
}
247228
else if (keys[SDL_SCANCODE_DOWN])
248229
{
@@ -260,6 +241,7 @@ void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionj
260241
}
261242
LinkActuel = BAS[3];
262243
afficher(rendu, LinkActuel, *positionjoueur);
244+
*direction = bas;
263245
}
264246
else if (keys[SDL_SCANCODE_RIGHT])
265247
{
@@ -277,6 +259,7 @@ void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionj
277259
}
278260
LinkActuel = DROITE[3];
279261
afficher(rendu, LinkActuel, *positionjoueur);
262+
*direction = droite;
280263
}
281264
else if (keys[SDL_SCANCODE_LEFT])
282265
{
@@ -294,6 +277,7 @@ void mouvement(SDL_Renderer *rendu, SDL_Surface *LinkActuel, SDL_Rect *positionj
294277
}
295278
LinkActuel = GAUCHE[3];
296279
afficher(rendu, LinkActuel, *positionjoueur);
280+
*direction = gauche;
297281
}
298282
}
299283

@@ -325,7 +309,15 @@ bool devantPort(SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45])
325309
bool sortmaison(SDL_Rect positionjoueur, SDL_Renderer *rendu, int carte[][45])
326310
{
327311
bool porte = false;
328-
if (positionjoueur.x == 7 && positionjoueur.y == 11)
312+
if (positionjoueur.x == 7 && positionjoueur.y == 10)
313+
{
314+
porte = true;
315+
}
316+
else if (positionjoueur.x == 8 && positionjoueur.y == 10)
317+
{
318+
porte = true;
319+
}
320+
else if (positionjoueur.x == 7 && positionjoueur.y == 11)
329321
{
330322
porte = true;
331323
}

src/src/maison.c

+6-4
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ void maison(SDL_Surface *fond){
2626
{
2727
ExitChargement("impossible d'afficher la texture", rendu, window);
2828
}
29-
30-
29+
30+
initialiserCarte(carte);
3131
carte[0][6] = 1;
3232
carte[0][7] = 1;
3333
carte[0][8] = 1;
@@ -105,9 +105,11 @@ void maison(SDL_Surface *fond){
105105
break;
106106
case SDL_KEYDOWN:
107107
keys[event.key.keysym.scancode] = true;
108-
mouvement(rendu, LinkActuel, &positionjoueur, carte, keys);
108+
mouvement(rendu, LinkActuel, &positionjoueur, carte, keys, &direction);
109109
if(sortmaison(positionjoueur, rendu, carte)){
110-
printf("sort de la maison");
110+
SDL_DestroyWindow(window);
111+
continuer=1;
112+
jouer(fond);
111113
}
112114
switch (event.key.keysym.sym){
113115
case SDLK_ESCAPE:

0 commit comments

Comments
 (0)