diff --git a/clavier.c b/clavier.c deleted file mode 100644 index 3a4a1d88d94ef8f62cc71ba5f94bea8a9d1a198d..0000000000000000000000000000000000000000 --- a/clavier.c +++ /dev/null @@ -1,19 +0,0 @@ -/* #include <SDL2/SDL.h> -#include "clavier.h" -#include <stdio.h> - - - - - - - -void animer_persos(ListeP L){ - s_ListeP *tmp = L; - tmp = tmp->next; - animer_perso(&tmp->data); - return; -} - - -*/ diff --git a/clavier.h b/clavier.h deleted file mode 100644 index aa078d7a90c85456fad52f474e7f5c203475c1fe..0000000000000000000000000000000000000000 --- a/clavier.h +++ /dev/null @@ -1,9 +0,0 @@ -/*#include <SDL2/SDL.h> -#include "listeB.h" - - - - - -void animer_persos(ListeP L);*/ - diff --git a/effets.c b/effets.c index 54362866045e4fc61385ce04f529f67e5439754c..a4dab957633e491d41006738ecf35522f4869235 100644 --- a/effets.c +++ b/effets.c @@ -7,9 +7,9 @@ Effet nouvel_effet_bloodHit(SDL_Texture **sprites, SDL_Rect pos, int angle){ e.srcrect.y = 0; e.srcrect.w = 128; e.srcrect.h = 128; - e.image = sprites[2]; + e.image = sprites[3]; e.angle = angle - 90; - e.xMax = 1920; + e.yMax = 1920; return e; } diff --git a/effets.h b/effets.h index 33276385562072a23c3be98825dbb27db7524294..c03e5246a6a5a78597cef151bec01fff9609142e 100644 --- a/effets.h +++ b/effets.h @@ -8,7 +8,7 @@ struct s_Effet SDL_Rect srcrect; SDL_Texture *image; float angle; - int xMax; + int yMax; }; Effet nouvel_effet_bloodHit(SDL_Texture **sprites, SDL_Rect pos, int angle); diff --git a/listeB.c b/listeB.c index 5efee12f196de40c4f70ab754a674275db42d0be..9c6ccd662172b5d56925555150f264da7eead3a4 100644 --- a/listeB.c +++ b/listeB.c @@ -1,19 +1,12 @@ #include "listeB.h" -ListeB nouvelle_listeB(balle data){ - ListeB L = malloc(sizeof(s_ListeB)); - L->data = data; - L->next = NULL; - return L; -} - void cons_listeB(ListeB *L, balle data){ ListeB tmp = malloc(sizeof(s_ListeB)); tmp->data = data; tmp->next = *L; *L = tmp; - return ; + return; } bool est_vide_listeB(ListeB L) { @@ -72,7 +65,7 @@ ListeB tir_update(ListeB LB, ListeP LP, ListeR LR, ListeE *LE, int time, SDL_Tex //Si perso en train de tirer s_ListeP *tmp = LP; while(tmp != NULL){ - if(tmp->data.tir){ + if(tmp->data.tir && tmp->data.ennemi == false){ //On fait pop une nouvelle balle toutes les X ms if(time > tmp->data.tempsTirPrecedent + 200) { cons_listeB(&LB, nouvelle_balle(balleLongueJaune, tmp->data.angle, tmp->data.degats, tmp->data.pos)); diff --git a/listeB.h b/listeB.h index e8d285cf777c4d501ccf16ca52c759ac7d3a2ecb..7da1c16488135c8902959b7e86413a7890817bfb 100644 --- a/listeB.h +++ b/listeB.h @@ -11,7 +11,7 @@ struct s_ListeB balle data; }; -ListeB nouvelle_listeB(balle data); + void cons_listeB(ListeB *L, balle data); bool est_vide_listeB(ListeB L); ListeB incrementer_balles(ListeB LB, ListeP LP, ListeR LR, ListeE *LE, int v, int xCamera, int yCamera, SDL_Texture **sprites); diff --git a/listeE.c b/listeE.c index 3c1323a8bee6e6b81dc691fdf086769f20452c08..2d5715434346590124ea4b598110996867a8a5b9 100644 --- a/listeE.c +++ b/listeE.c @@ -1,5 +1,6 @@ #include "listeE.h" + void cons_listeE(ListeE *L, Effet data){ ListeE tmp = malloc(sizeof(s_ListeE)); tmp->data = data; @@ -12,7 +13,7 @@ void animer_effets(ListeE L){ ListeE tmp; while(L != NULL){ L->data.srcrect.y += L->data.srcrect.h; - if(L->data.srcrect.y >= L->data.xMax){ + if(L->data.srcrect.y >= L->data.yMax){ if(L->next == NULL){ tmp = NULL; L = tmp; diff --git a/listeP.c b/listeP.c index af8a6c878485f26107a1ae0bfd804c4fd640cd20..1e5796c3809a35e1b9740de164954a331ea0fe48 100644 --- a/listeP.c +++ b/listeP.c @@ -1,14 +1,6 @@ #include "listeP.h" - -ListeP nouvelle_listeP(Perso data){ - ListeP L = malloc(sizeof(s_ListeP)); - L->data = data; - L->next = NULL; - return L; -} - void cons_listeP(ListeP *L, Perso data){ ListeP tmp = malloc(sizeof(s_ListeP)); tmp->data = data; @@ -24,6 +16,7 @@ bool est_vide_listeP(ListeP L){ } void afficher_listeP(SDL_Renderer *renderer, ListeP L){ + ListeP tmp = L; while(tmp != NULL) { afficher_perso(renderer, tmp->data); @@ -32,6 +25,7 @@ void afficher_listeP(SDL_Renderer *renderer, ListeP L){ } Perso* joueur(ListeP L){ + while(L != NULL){ if(L->data.ennemi == false){ return &L->data; @@ -41,14 +35,39 @@ Perso* joueur(ListeP L){ return NULL; } +void deplacement_ennemi(Perso *p, Perso *joueur, int xCamera, int yCamera, int dxCamera, int dyCamera){ + + int dX = 0; + int dY = 0; + + if(p != NULL){ + if(p->ennemi){ + //M�j de la direction du perso + angle_ennemi(p); + //Compensation du d�calage de la cam�ra + ajout du d�placement + dX = p->pos.x + round(-dxCamera + cos(p->angle) * p->vitesse); + dY = p->pos.y + round(-dyCamera + sin(p->angle) * p->vitesse); + //if(!detecter_collision_avec_joueur(p, joueur)){ + detecter_collision_avec_joueur(p, joueur); + p->pos.x = dX; + p->pos.y = dY; + // } + + p->angle = (p->angle * 180.0000)/PI; + } + } + return; +} void deplacement_ennemis(ListeP L, int xCamera, int yCamera, int dxCamera, int dyCamera){ + Perso *joueur_ptr = joueur(L); while(L != NULL){ - if(L->data.vie <= 0){ + if(L->data.vie <= 0 && L->data.ennemi){ *L = *L->next; L = L->next; } else { - deplacement_ennemi(&L->data, xCamera, yCamera, dxCamera, dyCamera); + deplacement_ennemi(&L->data, joueur_ptr, xCamera, yCamera, dxCamera, dyCamera); + L = L->next; } } @@ -56,8 +75,10 @@ void deplacement_ennemis(ListeP L, int xCamera, int yCamera, int dxCamera, int d } bool detecter_collision_perso(ListeP L, ListeE *LE, SDL_Rect rect, int degats, int xCamera, int yCamera, SDL_Texture **sprites){ + int ax1, ax2, bx1, bx2, ay1, ay2, by1, by2; Effet e; + while(L != NULL){ ax1 = rect.x; ax2 = rect.x + rect.w ; @@ -80,12 +101,35 @@ bool detecter_collision_perso(ListeP L, ListeE *LE, SDL_Rect rect, int degats, i } -void animer_persos(ListeP L){ +void detecter_collision_avec_joueur(Perso *p, Perso *joueur){ + + int ax1, ax2, bx1, bx2, ay1, ay2, by1, by2; + + ax1 = p->pos.x; + ax2 = p->pos.x + p->pos.w ; + bx1 = joueur->pos.x + 0.3 * joueur->pos.w; + bx2 = joueur->pos.x + 0.7 * joueur->pos.w; + ay1 = p->pos.y; + ay2 = p->pos.y + p->pos.h; + by1 = joueur->pos.y + 0.3 * joueur->pos.h; + by2 = joueur->pos.y + 0.7 * joueur->pos.h; + + if(ax1 < bx2 && ax2 > bx1 && ay1 < by2 && ay2 > by1){ + p->tir = true; + p->vitesse = 1; + } + + return; +} + + +void animer_persos(ListeP L, SDL_Texture **sprites, Perso *joueur){ + while(L != NULL){ - if(L->data.ennemi){ - animer_perso(&L->data); - } - L = L->next; + if(L->data.ennemi){ + animer_perso(&L->data, joueur, sprites); + } + L = L->next; } return; } diff --git a/listeP.h b/listeP.h index ce6c11408b367717d92a9fd3e87fa8998b5e5a07..b396fe32506014fc12fc6190e5f36a18aa3e5e19 100644 --- a/listeP.h +++ b/listeP.h @@ -13,14 +13,15 @@ struct s_ListeP -ListeP nouvelle_listeP(Perso data); void cons_listeP(ListeP *L, Perso data); bool est_vide_listeP(ListeP L); void afficher_listeP(SDL_Renderer *renderer, ListeP L); Perso* joueur(ListeP L); void supprimer_ennemi(ListeP L); +void deplacement_ennemi(Perso *p, Perso *joueur, int xCamera, int yCamera, int dxCamera, int dyCamera); void deplacement_ennemis(ListeP L, int xCamera, int yCamera, int dxCamera, int dyCamera); bool detecter_collision_perso(ListeP L, ListeE *LE, SDL_Rect rect, int degats, int xCamera, int yCamera, SDL_Texture **sprites); -void animer_persos(ListeP L); +void detecter_collision_avec_joueur(Perso *p, Perso *joueur); +void animer_persos(ListeP L, SDL_Texture **sprites, Perso *joueur); diff --git a/listeR.c b/listeR.c index eeeb326996ba547a438fceb3aa90abc386e8030c..4c3e022315a7cd9c96cbf51589f955de22c6a9de 100644 --- a/listeR.c +++ b/listeR.c @@ -1,14 +1,6 @@ #include "listeR.h" - -ListeR nouvelle_listeR(SDL_Rect data){ - ListeR L = malloc(sizeof(s_ListeR)); - L->data = data; - L->next = NULL; - return L; -} - void cons_listeR(ListeR *L, SDL_Rect data){ ListeR tmp = malloc(sizeof(s_ListeR)); tmp->data = data; diff --git a/listeR.h b/listeR.h index de909782ef6f7984cff35582f4f6d5ff51c65cc0..aab23b07c45e50531fef4568e6d2445a3e8cf02b 100644 --- a/listeR.h +++ b/listeR.h @@ -9,7 +9,7 @@ struct s_ListeR SDL_Rect data; }; -ListeR nouvelle_listeR(SDL_Rect data); + void cons_listeR(ListeR *L, SDL_Rect data); void charger_niveau(int *tab, ListeR *L); bool detecter_collision_murs(ListeR L, SDL_Rect rect, int xCamera, int yCamera); diff --git a/main.c b/main.c index 207bdffc0d9396e8473862a42b769a17376e22b9..827c089763c815e7b69108dbeae840263de5ea78 100644 --- a/main.c +++ b/main.c @@ -5,24 +5,20 @@ int main(int argc, char *argv[]) { srand(time(NULL)); - bool gameover = false; - bool tir = false; + bool gameover, tir, exit; SDL_Window *fenetre; SDL_Event evenements; SDL_Renderer *ecran; - SDL_Texture *fond, *perso, *balleLongueJaune; - SDL_Rect persoPos; + SDL_Texture *tmp, *balleSprite, *sprites[4], *spritesMap[9]; float mouseX, mouseY; - int vitesse = 25, tempsActuel = 0, tempsPrecedent = 0, tempsActuelTir = 0, tempsActuelAnim = 0, tempsPrecedentAnim = 0; + int vitesse, tempsActuel, tempsPrecedent, tempsActuelTir, tempsActuelAnim, tempsPrecedentAnim, + xCamera, yCamera, dxCamera, dyCamera, map[30][30]; ; ListeB ballesTirees; ListeP persosListe; ListeR mursListe; ListeE effetsListe; - Perso *joueur_ptr; - SDL_Texture *sprites[3]; - SDL_Texture *spritesMap[9]; - int xCamera = 0, yCamera = 0, dxCamera = 0, dyCamera = 0; - int map[30][30]; + Perso p, *joueur_ptr; + //Initialisation SDL @@ -48,10 +44,8 @@ int main(int argc, char *argv[]) ecran = SDL_CreateRenderer(fenetre, -1, SDL_RENDERER_ACCELERATED); //Chargement images - balleLongueJaune = charger_image("sprites/projectiles/balle/balle_longue_jaune.png", ecran, 255, 255, 255); - - - //Chargement du d�cor (murs etc) + balleSprite = charger_image("sprites/projectiles/balle/balle_longue_jaune.png", ecran, 255, 255, 255); + //Murs + Sols spritesMap[0] = charger_image("sprites/map/sol.png", ecran, 0, 0, -1); spritesMap[1] = charger_image("sprites/map/mur_h.png", ecran, 255, 255, 255); spritesMap[2] = charger_image("sprites/map/mur_b.png", ecran, 255, 255, 255); @@ -62,136 +56,155 @@ int main(int argc, char *argv[]) spritesMap[7] = charger_image("sprites/map/mur_bg.png", ecran, 255, 255, 255); spritesMap[8] = charger_image("sprites/map/mur_bd.png", ecran, 255, 255, 255); - fond = charger_image("sprites/fond.png", ecran, -1, -1, -1); - perso = charger_image("sprites/perso/handgun/idle/survivor_idle.png", ecran, 255, 255, 255); - sprites[0] = perso; - perso = charger_image("sprites/ennemis/zombie/move/zombie_moveV2.png", ecran, 0, 0, -1); - sprites[1] = perso; - perso = charger_image("sprites/effets/blood/blood_hitv3.png", ecran, 0, 0, -1); - sprites[2] = perso; - - - SDL_Rect tmpRect; - tmpRect.x = 0; - tmpRect.y = 0; - tmpRect.w = 0; - tmpRect.h = 0; - mursListe = nouvelle_listeR(tmpRect); - charger_niveau(map[0], &mursListe); - - - Perso p = nouveau_joueur(ecran , sprites); - persosListe = nouvelle_listeP(p); - p = nouvel_ennemi_1(ecran, sprites); - cons_listeP(&persosListe, p); - p = nouvel_ennemi_1(ecran, sprites); - cons_listeP(&persosListe, p); - p = nouvel_ennemi_1(ecran, sprites); - cons_listeP(&persosListe, p); - p = nouvel_ennemi_1(ecran, sprites); - cons_listeP(&persosListe, p); - p = nouvel_ennemi_1(ecran, sprites); - cons_listeP(&persosListe, p); - p = nouvel_ennemi_1(ecran, sprites); - cons_listeP(&persosListe, p); - - - balle b = nouvelle_balle(balleLongueJaune, 0, 0, persoPos); - ballesTirees = nouvelle_listeB(b); - - effetsListe = NULL; - - //Boucle de jeu - while(!gameover) - { - //Petit timer pour pas d�passer 60 ex�cutions/sec (provisoire) - tempsActuel = SDL_GetTicks(); - if (tempsActuel > tempsPrecedent + 16) + //Personnages + Effets + tmp = charger_image("sprites/perso/handgun/idle/survivor_idle.png", ecran, 255, 255, 255); + sprites[0] = tmp; + tmp = charger_image("sprites/ennemis/zombie/move/zombie_moveV2.png", ecran, 0, 0, -1); + sprites[1] = tmp; + tmp = charger_image("sprites/ennemis/zombie/attack/zombie_attack.png", ecran, 0, 0, -1); + sprites[2] = tmp; + tmp = charger_image("sprites/effets/blood/blood_hitv3.png", ecran, 0, 0, -1); + sprites[3] = tmp; + + exit = false; + + while(!exit){ + + gameover = false; + tir = false; + + vitesse = 25; + tempsActuel = 0; + tempsPrecedent = 0; + tempsActuelTir = 0; + tempsActuelAnim = 0; + tempsPrecedentAnim = 0; + xCamera = 0; + yCamera = 0; + dxCamera = 0; + dyCamera = 0; + + mursListe = NULL; + ballesTirees = NULL; + effetsListe = NULL; + persosListe = NULL; + joueur_ptr = NULL; + + charger_niveau(map[0], &mursListe); + + p = nouveau_joueur(ecran, sprites); + cons_listeP(&persosListe, p); + p = nouvel_ennemi_1(ecran, sprites); + cons_listeP(&persosListe, p); + p = nouvel_ennemi_1(ecran, sprites); + cons_listeP(&persosListe, p); + p = nouvel_ennemi_1(ecran, sprites); + cons_listeP(&persosListe, p); + p = nouvel_ennemi_1(ecran, sprites); + cons_listeP(&persosListe, p); + + + + //Boucle de jeu + while(!gameover) { - //D�tection �v�nements - while(SDL_PollEvent(&evenements)) + tempsActuel = SDL_GetTicks(); + if (tempsActuel > tempsPrecedent + 16) { - switch(evenements.type) + //D�tection �v�nements + while(SDL_PollEvent(&evenements)) { - case SDL_QUIT: - gameover = true; - break; - case SDL_MOUSEMOTION: - mouseX = evenements.motion.x; - mouseY = evenements.motion.y; - break; - case SDL_MOUSEBUTTONDOWN: - switch(evenements.button.button) - { - case SDL_BUTTON_LEFT: - tir = true; - break; - } - break; - case SDL_MOUSEBUTTONUP: - switch(evenements.button.button) - { - case SDL_BUTTON_LEFT: - tir = false; - break; - } - break; - - case SDL_KEYDOWN: - switch(evenements.key.keysym.sym) - { - case SDLK_ESCAPE: - gameover = true; - break; - } - break; - + switch(evenements.type) + { + case SDL_QUIT: + gameover = true; + exit = true; + break; + case SDL_MOUSEMOTION: + mouseX = evenements.motion.x; + mouseY = evenements.motion.y; + break; + case SDL_MOUSEBUTTONDOWN: + switch(evenements.button.button) + { + case SDL_BUTTON_LEFT: + tir = true; + break; + } + break; + case SDL_MOUSEBUTTONUP: + switch(evenements.button.button) + { + case SDL_BUTTON_LEFT: + tir = false; + break; + } + break; + + case SDL_KEYDOWN: + switch(evenements.key.keysym.sym) + { + case SDLK_ESCAPE: + gameover = true; + exit = true; + break; + } + break; + + } } - } - joueur_ptr = joueur(persosListe); - if(joueur_ptr != NULL){ - //Gestion d�placement/angle de tir - joueur_ptr->tir = tir; - deplacement_joueur(joueur_ptr, mursListe, &xCamera, &yCamera, &dxCamera, &dyCamera); - angle_joueur((joueur_ptr), mouseX, mouseY); - } - + joueur_ptr = joueur(persosListe); + if(joueur_ptr != NULL){ + //Gestion d�placement/angle de tir + joueur_ptr->tir = tir; + deplacement_joueur(joueur_ptr, mursListe, &xCamera, &yCamera, &dxCamera, &dyCamera); + angle_joueur((joueur_ptr), mouseX, mouseY); + } - tempsActuelAnim = SDL_GetTicks(); - if(tempsActuelAnim > tempsPrecedentAnim + 40 ){ - animer_persos(persosListe); - animer_effets(effetsListe); - tempsPrecedentAnim = tempsActuelAnim; - } + tempsActuelAnim = SDL_GetTicks(); + if(tempsActuelAnim > tempsPrecedentAnim + 40 ){ + animer_persos(persosListe, sprites, joueur_ptr); + animer_effets(effetsListe); + tempsPrecedentAnim = tempsActuelAnim; + } + //D�tection mort joueur + if(joueur_ptr->vie <= 0){ + gameover = true; + } + //D�placement/angle de tir ennemis + deplacement_ennemis(persosListe, xCamera, yCamera, dxCamera, dyCamera); - //D�placement/angle de tir ennemis - deplacement_ennemis(persosListe, xCamera, yCamera, dxCamera, dyCamera); + //Tir + tempsActuelTir = SDL_GetTicks(); + ballesTirees = tir_update(ballesTirees, persosListe, mursListe, &effetsListe, tempsActuelTir, balleSprite, vitesse, xCamera, yCamera, sprites); - //Tir - tempsActuelTir = SDL_GetTicks(); - ballesTirees = tir_update(ballesTirees, persosListe, mursListe, &effetsListe, tempsActuelTir, balleLongueJaune, vitesse, xCamera, yCamera, sprites); + //Affichage + SDL_RenderClear(ecran); + afficher_niveau(map[0], ecran, spritesMap, xCamera, yCamera); + afficher_listeE(ecran, effetsListe, dxCamera, dyCamera); + afficher_listeP(ecran, persosListe); + afficher_listeB(ecran, ballesTirees); + SDL_RenderPresent(ecran); - //Affichage - SDL_RenderClear(ecran); - afficher_niveau(map[0], ecran, spritesMap, xCamera, yCamera); - afficher_listeE(ecran, effetsListe, dxCamera, dyCamera); - afficher_listeP(ecran, persosListe); - afficher_listeB(ecran, ballesTirees); - SDL_RenderPresent(ecran); - tempsPrecedent = tempsActuel; + tempsPrecedent = tempsActuel; + } } + + if(gameover) + printf("gameover :(\n"); + } //Nettoyage SDL_DestroyWindow(fenetre); - SDL_DestroyTexture(fond); - SDL_DestroyTexture(perso); + SDL_DestroyTexture(balleSprite);; + SDL_DestroyTexture(tmp); IMG_Quit(); SDL_Quit(); return EXIT_SUCCESS; diff --git a/personnage.c b/personnage.c index 88109d00d419bc5fb45144d968dac79597d72d88..2621e0d5de16585fcc2a3e7ec8253e60ba591f12 100644 --- a/personnage.c +++ b/personnage.c @@ -105,19 +105,6 @@ void deplacement_joueur(Perso *p, ListeR L, int *xCamera, int *yCamera, int *dxC return; } -void deplacement_ennemi(Perso *p, int xCamera, int yCamera, int dxCamera, int dyCamera){ - if(p != NULL){ - if(p->ennemi){ - //M�j de la direction du perso - angle_ennemi(p); - //Compensation du d�calage de la cam�ra + ajout du d�placement - p->pos.x += round(-dxCamera + cos(p->angle) * p->vitesse); - p->pos.y += round(-dyCamera + sin(p->angle) * p->vitesse); - p->angle = (p->angle * 180.0000)/PI; - } - } - return; -} void angle_joueur(Perso *p, float mouseX, float mouseY){ float angle; @@ -134,11 +121,47 @@ void angle_ennemi(Perso *p){ return; } -void animer_perso(Perso *p){ - p->srcrect.y += p->srcrect.h * p->animFlip; - if(p->srcrect.y >= p->yMax|| p->srcrect.y < 0){ - p->animFlip = -p->animFlip; +void animer_perso(Perso *p, Perso *joueur, SDL_Texture **sprites){ + if(p->tir){ + if(p->srcrect.w != 318){ + p->image = sprites[2]; + p->pos.w = 60; + p->pos.h = 60; + p->srcrect.w = 318; + p->srcrect.h = 294; + p->srcrect.y = 0; + p->yMax = 2646; + p->animFlip = 1; + } else { + p->srcrect.y += p->srcrect.h * p->animFlip; + if(p->srcrect.y == p->srcrect.h * 6){ + if(joueur->vie < p->degats){ + joueur->vie = 0; + }else { + joueur->vie -= p->degats; + } + } else if(p->srcrect.y == p->yMax){ + p->image = sprites[1]; + p->pos.w = 50; + p->pos.h = 50; + p->srcrect.w = 229; + p->srcrect.h = 259; + p->srcrect.y = 0; + p->yMax = 4403; + p->animFlip = 1; + p->tir = false; + p->vitesse = 2; + } + } + + } + + else { p->srcrect.y += p->srcrect.h * p->animFlip; + if((p->srcrect.y >= p->yMax || p->srcrect.y < 0) && !p->tir){ + p->animFlip = -p->animFlip; + p->srcrect.y += p->srcrect.h * p->animFlip; + } } return; } diff --git a/personnage.h b/personnage.h index 063d219de95ca2c5d9ac535debf6622526569917..7bb9754de1f1cf046180fc8e96273a5ec97b5779 100644 --- a/personnage.h +++ b/personnage.h @@ -1,4 +1,5 @@ #include <time.h> +#include <stdio.h> #include <math.h> #include "image.h" #include "listeR.h" @@ -19,6 +20,7 @@ struct s_Personnage int degats; int vitesse; int animFlip; + int yMax; bool tir; bool ennemi; }; @@ -28,8 +30,7 @@ Perso nouveau_joueur(SDL_Renderer *renderer, SDL_Texture **sprites); Perso nouvel_ennemi_1(SDL_Renderer *renderer, SDL_Texture **sprites); void afficher_perso(SDL_Renderer *renderer, Perso p); void deplacement_joueur(Perso *p, ListeR L, int *xCamera, int *yCamera, int *dxCamera, int *dyCamera); -void deplacement_ennemi(Perso *p, int xCamera, int yCamera, int dxCamera, int dyCamera); void angle_ennemi(Perso *p); void angle_joueur(Perso *p, float mouseX, float mouseY); -void animer_perso(Perso *p); +void animer_perso(Perso *p, Perso *joueur, SDL_Texture **sprites); diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_0.png b/sprites/ennemis/zombie/attack/skeleton-attack_0.png deleted file mode 100644 index 065cb415e20af639229419ea274e0ef3ffe4982a..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_0.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_1.png b/sprites/ennemis/zombie/attack/skeleton-attack_1.png deleted file mode 100644 index 23b33f651d0ccd124e645e4ac87ec207a8f01064..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_1.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_2.png b/sprites/ennemis/zombie/attack/skeleton-attack_2.png deleted file mode 100644 index 778fb66f3c5d9d39694da1fc74624ca7ed64454c..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_2.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_3.png b/sprites/ennemis/zombie/attack/skeleton-attack_3.png deleted file mode 100644 index ee6db3ab2e4d839aa85d0d7da444adfb5684aca1..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_3.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_4.png b/sprites/ennemis/zombie/attack/skeleton-attack_4.png deleted file mode 100644 index d2006f641aafa76216438f13be79b45c81336582..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_4.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_5.png b/sprites/ennemis/zombie/attack/skeleton-attack_5.png deleted file mode 100644 index 8d3ba16b675ce0bde6ded1a092a092699d8c7547..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_5.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_6.png b/sprites/ennemis/zombie/attack/skeleton-attack_6.png deleted file mode 100644 index 1e0b577a00e8b9361a9c21ad2b1da15a23c4479a..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_6.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_7.png b/sprites/ennemis/zombie/attack/skeleton-attack_7.png deleted file mode 100644 index 27494e0fcc8960c057db31ff200889b5a202e52a..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_7.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/skeleton-attack_8.png b/sprites/ennemis/zombie/attack/skeleton-attack_8.png deleted file mode 100644 index 065cb415e20af639229419ea274e0ef3ffe4982a..0000000000000000000000000000000000000000 Binary files a/sprites/ennemis/zombie/attack/skeleton-attack_8.png and /dev/null differ diff --git a/sprites/ennemis/zombie/attack/zombie_attack.png b/sprites/ennemis/zombie/attack/zombie_attack.png new file mode 100644 index 0000000000000000000000000000000000000000..b28804403ea110f0c82f8f971e7651207944b1e6 Binary files /dev/null and b/sprites/ennemis/zombie/attack/zombie_attack.png differ diff --git a/sprites/fond.png b/sprites/fond.png deleted file mode 100644 index 9be62928bc1a9491e0585b23263c35b0f314dd36..0000000000000000000000000000000000000000 Binary files a/sprites/fond.png and /dev/null differ diff --git a/sprites/mur.png b/sprites/mur.png deleted file mode 100644 index 9651a050c7c8a843c74ab7fce7cb01a165f012da..0000000000000000000000000000000000000000 Binary files a/sprites/mur.png and /dev/null differ diff --git a/sprites/perso/ennemi_1.png b/sprites/perso/ennemi_1.png deleted file mode 100644 index 2dd4e4681a6604f564a4a8c403ea5021ca510728..0000000000000000000000000000000000000000 Binary files a/sprites/perso/ennemi_1.png and /dev/null differ diff --git a/sprites/projectiles/balle/balle_longue_jaune2.png b/sprites/projectiles/balle/balle_longue_jaune2.png deleted file mode 100644 index 0040e53419676b3e7b9f060f40d2801afbc05bb3..0000000000000000000000000000000000000000 Binary files a/sprites/projectiles/balle/balle_longue_jaune2.png and /dev/null differ diff --git a/sprites/projectiles/balle/spr_bullet_strip02.png b/sprites/projectiles/balle/spr_bullet_strip02.png deleted file mode 100644 index 67bfcbdfc1b67e653d47314c75b62f80384ef203..0000000000000000000000000000000000000000 Binary files a/sprites/projectiles/balle/spr_bullet_strip02.png and /dev/null differ diff --git a/sprites/projectiles/balle/spr_bullet_strip03.png b/sprites/projectiles/balle/spr_bullet_strip03.png deleted file mode 100644 index cfd57834e88d010edc0f80593a60b588650bb819..0000000000000000000000000000000000000000 Binary files a/sprites/projectiles/balle/spr_bullet_strip03.png and /dev/null differ