From a5d1724dfa122569502d8242199ceaa9060c1b94 Mon Sep 17 00:00:00 2001 From: antoinemeyer5 <antoine.meyer54@gmail.com> Date: Thu, 23 Jun 2022 10:10:15 +0200 Subject: [PATCH] concatenation de code pour les collisions, changement des points de vie --- travail_de_groupe/chef_oeuvre/src/map.h | 3 + travail_de_groupe/chef_oeuvre/src/player.c | 75 ++++++++-------------- 2 files changed, 28 insertions(+), 50 deletions(-) diff --git a/travail_de_groupe/chef_oeuvre/src/map.h b/travail_de_groupe/chef_oeuvre/src/map.h index a9b6c58..adbfbc6 100644 --- a/travail_de_groupe/chef_oeuvre/src/map.h +++ b/travail_de_groupe/chef_oeuvre/src/map.h @@ -5,6 +5,9 @@ #define MAPSIZE 20 +#define TREE 1 +#define WATER 2 + extern int map[MAPSIZE][MAPSIZE]; void readMapFromFile(char * filename); diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c index 4b31b13..f17ae94 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.c +++ b/travail_de_groupe/chef_oeuvre/src/player.c @@ -33,14 +33,21 @@ int getPositionYInMap(int y){ return y2; } -int checkCollisionsTree(int dot1, int dot2){ +int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){ int coll = 0; - if(dot1==1 || dot2==1){ + if(dot1==typeGround || dot2==typeGround){ coll = 1; } return coll; } +void checkCollisionsFire(int dot1, int dot2){ + if((dot1==1 || dot2==1) && player.invisible==0){ + player.currentHP = player.currentHP - 1; + player.invisible = 1; + } +} + int collisionsLeftPlayer(){ int collision = 0; int dotTopLeft = giveCaseBelowPosition(player.x, player.y); @@ -51,17 +58,10 @@ int collisionsLeftPlayer(){ if(player.x <= 0){ collision = 1; } - //collision tree - 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; - } + //collisions + collision = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, TREE); + collision = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, WATER); + checkCollisionsFire(fireTopLeft, fireDownLeft); return collision; } @@ -75,17 +75,10 @@ int collisionsRightPlayer(){ if(player.x + player.w >= MAPSIZE * CELLSIZE){ collision = 1; } - //collision tree - 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; - } + //collisions + collision = checkCollisionsTypeGround(dotTopRight, dotDownRight, TREE); + collision = checkCollisionsTypeGround(dotTopRight, dotDownRight, WATER); + checkCollisionsFire(fireTopRight, fireDownRight); return collision; } @@ -99,19 +92,10 @@ int collisionsUpPlayer(){ if(player.y <= 0){ collision = 1; } - //collision tree - if(dotTopRight==1 || dotTopLeft==1){ - collision = 1; - } - //collision water - 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; - } + //collisions + collision = checkCollisionsTypeGround(dotTopRight, dotTopLeft, TREE); + collision = checkCollisionsTypeGround(dotTopRight, dotTopLeft, WATER); + checkCollisionsFire(fireTopRight, fireTopLeft); return collision; } @@ -125,19 +109,10 @@ int collisionsDownPlayer(){ if(player.y + player.h >= MAPSIZE * CELLSIZE){ collision = 1; } - //collision tree - if(dotDownRight==1 || dotDownLeft==1){ - collision = 1; - } - //collision water - 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; - } + //collisions + collision = checkCollisionsTypeGround(dotDownRight, dotDownLeft, TREE); + collision = checkCollisionsTypeGround(dotDownRight, dotDownLeft, WATER); + checkCollisionsFire(fireDownRight, fireDownLeft); return collision; } -- GitLab