diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c index f17ae9406f2967f8c66543f116355fc43716d275..416b052b6c27cdb38263114f4797cc3f58cb9545 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 99afb10515bfd45c50cb4ac0bcea314d95f74cb0..b0b2253d9de191eb31765e0829459949a217cfc4 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 1af4a2722d4abd4406370e24b62f13bf0e6fca40..e48f6490fda5bab38584450152ee9c86df4130fd 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();