diff --git a/travail_de_groupe/chef_oeuvre/src/fire.c b/travail_de_groupe/chef_oeuvre/src/fire.c index 61289d5cbc08e62603c62e46da4c5877bfc4b9f0..1ad72f870db3bd0d3c4d43ebbea64531f5a61115 100644 --- a/travail_de_groupe/chef_oeuvre/src/fire.c +++ b/travail_de_groupe/chef_oeuvre/src/fire.c @@ -55,7 +55,7 @@ listchainfire_t startFire(listchainfire_t listFire,int numberFire, int mapSize){ xFire= rand()%mapSize; yFire= rand()%mapSize; - printf("xf:%d,yf:%d\n",xFire,yFire); + //printf("xf:%d,yf:%d\n",xFire,yFire); fire.x= xFire; fire.y= yFire; fire.state=1; @@ -132,7 +132,7 @@ void travelFire(listchainfire_t listFire){ listchainfire_t listTemporary=listFire; while(listTemporary!=NULL){ - printf("x:%d,y:%d\n",(listTemporary->fire).x,(listTemporary->fire).y); + //printf("x:%d,y:%d\n",(listTemporary->fire).x,(listTemporary->fire).y); listTemporary=listTemporary->next; } //freeListFire(listTemporary); @@ -185,8 +185,8 @@ void nextFire(listchainfire_t listFire){ else if ((pMedium<=probability)&&(probability<pStrong)){(listTemporary->fire).state=STRONG;} else {(listTemporary->fire).state=SPREAD;} - printf("%d %d\n", probability, state); - printf("%d %d %d %d\n", pDead, pSparkle, pMedium, pStrong); + //printf("%d %d\n", probability, state); + //printf("%d %d %d %d\n", pDead, pSparkle, pMedium, pStrong); listTemporary=listTemporary->next; } diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c index 865f3a155734ad29523334da798fcb11935dac56..4b31b13658baf42e3e5aa0ee0fd5b3c0cde27de4 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.c +++ b/travail_de_groupe/chef_oeuvre/src/player.c @@ -12,6 +12,9 @@ void initPlayer(){ player.currentWater = player.waterMax; player.speed = 1; player.isMoving = 0; + player.HPMax = 3; + player.currentHP = player.HPMax; + player.invisible = 0; } int giveCaseBelowPosition(int x, int y){ @@ -20,22 +23,45 @@ int giveCaseBelowPosition(int x, int y){ return map[y2][x2]; } +int getPositionXInMap(int x){ + int x2 = x/CELLSIZE; + return x2; +} + +int getPositionYInMap(int y){ + int y2 = y/CELLSIZE; + return y2; +} + +int checkCollisionsTree(int dot1, int dot2){ + int coll = 0; + if(dot1==1 || dot2==1){ + coll = 1; + } + return coll; +} + int collisionsLeftPlayer(){ int collision = 0; int dotTopLeft = giveCaseBelowPosition(player.x, player.y); int dotDownLeft = giveCaseBelowPosition(player.x, player.y+player.h); + int fireTopLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y)); + int fireDownLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y+player.h)); //collision window if(player.x <= 0){ collision = 1; } //collision tree - if(dotTopLeft==1 || dotDownLeft==1){ - collision = 1; - } + collision = checkCollisionsTree(dotTopLeft, dotDownLeft); //collision water if(dotTopLeft==2 || dotDownLeft==2){ collision = 1; } + //collision fire + if((fireTopLeft==1 || fireDownLeft==1) && player.invisible==0){ + player.currentHP = player.currentHP - 1; + player.invisible = 1; + } return collision; } @@ -43,18 +69,23 @@ int collisionsRightPlayer(){ int collision = 0; int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y); int dotDownRight = giveCaseBelowPosition(player.x+player.w, player.y+player.h); + int fireTopRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y)); + int fireDownRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y+player.h)); //collision window if(player.x + player.w >= MAPSIZE * CELLSIZE){ collision = 1; } //collision tree - if(dotTopRight==1 || dotDownRight==1){ - collision = 1; - } + collision = checkCollisionsTree(dotTopRight, dotDownRight); //collision water if(dotTopRight==2 || dotDownRight==2){ collision = 1; } + //collision fire + if((fireTopRight==1 || fireDownRight==1) && player.invisible==0){ + player.currentHP = player.currentHP - 1; + player.invisible = 1; + } return collision; } @@ -62,6 +93,8 @@ int collisionsUpPlayer(){ int collision = 0; int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y); int dotTopLeft = giveCaseBelowPosition(player.x, player.y); + int fireTopRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y)); + int fireTopLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y)); //collision window if(player.y <= 0){ collision = 1; @@ -74,6 +107,11 @@ int collisionsUpPlayer(){ if(dotTopRight==2 || dotTopLeft==2){ collision = 1; } + //collision fire + if((fireTopRight==1 || fireTopLeft==1) && player.invisible==0){ + player.currentHP = player.currentHP - 1; + player.invisible = 1; + } return collision; } @@ -81,6 +119,8 @@ int collisionsDownPlayer(){ int collision = 0; int dotDownRight = giveCaseBelowPosition(player.x+player.w, player.y+player.h); int dotDownLeft = giveCaseBelowPosition(player.x, player.y+player.h); + int fireDownRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y+player.h)); + int fireDownLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y+player.h)); //collision window if(player.y + player.h >= MAPSIZE * CELLSIZE){ collision = 1; @@ -93,6 +133,11 @@ int collisionsDownPlayer(){ if(dotDownRight==2 || dotDownLeft==2){ collision = 1; } + //collision fire + if((fireDownRight==1 || fireDownLeft==1) && player.invisible==0){ + player.currentHP = player.currentHP - 1; + player.invisible = 1; + } return collision; } diff --git a/travail_de_groupe/chef_oeuvre/src/player.h b/travail_de_groupe/chef_oeuvre/src/player.h index 387cf001c1dcde003a376e123739a23e158ebbbe..99afb10515bfd45c50cb4ac0bcea314d95f74cb0 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.h +++ b/travail_de_groupe/chef_oeuvre/src/player.h @@ -19,6 +19,9 @@ typedef struct player{ int speed; int isMoving; int direction; + int HPMax; + int currentHP; + int invisible; } player_t; extern player_t player; diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c index 035f2bee00a528b99dc2fc98a4c57e85510ecd26..d2a217e5ac0498d594e0b7b9d8f149289757a097 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.c +++ b/travail_de_groupe/chef_oeuvre/src/render.c @@ -250,7 +250,7 @@ void drawScore(){ SDL_RenderCopy(renderer, scoreTexture, NULL, &rect); rect.y += rect.h; char str[10]; - sprintf(str, "%d", score); + //sprintf(str, "%d", score); SDL_Color textColor = {237,222,17}; SDL_Surface * surface = TTF_RenderText_Solid(robotoFont, str, textColor); SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface); @@ -348,9 +348,9 @@ void mainLoop(){ delta = (a - b); if (delta > 1000/FPS_TO_GET){ timer += delta; - printf("timer : %f\n", timer/1000); + //printf("timer : %f\n", timer/1000); b = a; - printf("fps : %f", 1000/delta); + //printf("fps : %f", 1000/delta); switch (gameState){ case MENU: drawMenu();