From 390d6836cfd61db36c6d23cc23a168f140d1b40f Mon Sep 17 00:00:00 2001 From: antoinemeyer5 <antoine.meyer54@gmail.com> Date: Thu, 23 Jun 2022 11:08:56 +0200 Subject: [PATCH] perte de vie du pompier par brulure fonctionnelle, invisibilite de 5 secondes apres chaque touche --- travail_de_groupe/chef_oeuvre/src/player.c | 12 ++++++++++-- travail_de_groupe/chef_oeuvre/src/player.h | 2 ++ travail_de_groupe/chef_oeuvre/src/render.h | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c index f17ae94..416b052 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.c +++ b/travail_de_groupe/chef_oeuvre/src/player.c @@ -15,6 +15,7 @@ void initPlayer(){ player.HPMax = 3; player.currentHP = player.HPMax; player.invisible = 0; + player.invisibleTime = 5; } int giveCaseBelowPosition(int x, int y){ @@ -42,9 +43,11 @@ int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){ } void checkCollisionsFire(int dot1, int dot2){ - if((dot1==1 || dot2==1) && player.invisible==0){ + if(player.invisible==0 && (dot1==1 || dot2==1) && player.currentHP>0){ player.currentHP = player.currentHP - 1; player.invisible = 1; + player.timeLastHitFire = (int)timer/1000; + printf("touche\n"); } } @@ -162,6 +165,12 @@ void manageMovement(){ player.direction = PLAYER_RIGHT; } else player.isMoving = 0; + // + if(player.invisible==1){ + if((int)timer/1000 - player.timeLastHitFire > player.invisibleTime){ + player.invisible = 0; + } + } } int selectStateHover(){ @@ -173,7 +182,6 @@ int selectStateHover(){ return stateHover; } - void pourWater(int x, int y){ int onFire = searchFire(fireList, x, y); if(player.currentWater>0){ diff --git a/travail_de_groupe/chef_oeuvre/src/player.h b/travail_de_groupe/chef_oeuvre/src/player.h index 99afb10..b0b2253 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.h +++ b/travail_de_groupe/chef_oeuvre/src/player.h @@ -22,6 +22,8 @@ typedef struct player{ int HPMax; int currentHP; int invisible; + int invisibleTime; + int timeLastHitFire; } player_t; extern player_t player; diff --git a/travail_de_groupe/chef_oeuvre/src/render.h b/travail_de_groupe/chef_oeuvre/src/render.h index 1af4a27..e48f649 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.h +++ b/travail_de_groupe/chef_oeuvre/src/render.h @@ -12,6 +12,7 @@ extern SDL_Window *window; extern SDL_Renderer *renderer; extern SDL_DisplayMode screenDimension; extern SDL_Rect buttonRect; +extern float timer; void drawHover(int x, int y); void mainLoop(); -- GitLab