Skip to content
Snippets Groups Projects
Commit 05c65655 authored by antoinemeyer5's avatar antoinemeyer5
Browse files

concatenation code collisions

parent a43f915e
No related branches found
No related tags found
No related merge requests found
...@@ -42,6 +42,15 @@ int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){ ...@@ -42,6 +42,15 @@ int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){
return coll; return coll;
} }
int collisionsCaseSolid(int dot1, int dot2){
return checkCollisionsTypeGround(dot1, dot2, TREE)
|| checkCollisionsTypeGround(dot1, dot2, WATER);
}
/*int collisionsWindow(){
}*/
void checkCollisionsFire(int dot1, int dot2){ void checkCollisionsFire(int dot1, int dot2){
if(player.invisible==0 && (dot1==1 || dot2==1) && player.currentHP>0){ if(player.invisible==0 && (dot1==1 || dot2==1) && player.currentHP>0){
player.currentHP = player.currentHP - 1; player.currentHP = player.currentHP - 1;
...@@ -50,88 +59,60 @@ void checkCollisionsFire(int dot1, int dot2){ ...@@ -50,88 +59,60 @@ void checkCollisionsFire(int dot1, int dot2){
} }
} }
int collisionsLeftPlayer(){ int collisionsLeftPlayer(int dot1, int dot2){
int collisionWindow = 0; int collisionWindow = 0;
int collisionTree = 0; int collisionCaseSolid = 0;
int collisionWater = 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 //collision window
if(player.x <= 0){ if(player.x <= 0){
collisionWindow = 1; collisionWindow = 1;
} }
//collisions //collisions
collisionTree = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, TREE); collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
collisionWater = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, WATER); return collisionWindow || collisionCaseSolid;
checkCollisionsFire(fireTopLeft, fireDownLeft);
return collisionWindow || collisionTree || collisionWater;
} }
int collisionsRightPlayer(){ int collisionsRightPlayer(int dot1, int dot2){
int collisionWindow = 0; int collisionWindow = 0;
int collisionTree = 0; int collisionCaseSolid = 0;
int collisionWater = 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 //collision window
if(player.x + player.w >= MAPSIZE * CELLSIZE){ if(player.x + player.w >= MAPSIZE * CELLSIZE){
collisionWindow = 1; collisionWindow = 1;
} }
//collisions //collisions
collisionTree = checkCollisionsTypeGround(dotTopRight, dotDownRight, TREE); collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
collisionWater = checkCollisionsTypeGround(dotTopRight, dotDownRight, WATER); return collisionWindow || collisionCaseSolid;
checkCollisionsFire(fireTopRight, fireDownRight);
return collisionWindow || collisionTree || collisionWater;
} }
int collisionsUpPlayer(int dot1, int dot2){ int collisionsUpPlayer(int dot1, int dot2){
int collisionWindow = 0; int collisionWindow = 0;
int collisionTree = 0; int collisionCaseSolid = 0;
int collisionWater = 0;
//collision window //collision window
if(player.y <= 0){ if(player.y <= 0){
collisionWindow = 1; collisionWindow = 1;
} }
//collisions //collisions solide like tree or water or rock(in the future)
collisionTree = checkCollisionsTypeGround(dot1, dot2, TREE); collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
collisionWater = checkCollisionsTypeGround(dot1, dot2, WATER); return collisionWindow || collisionCaseSolid;
return collisionWindow || collisionTree || collisionWater;
} }
int collisionsDownPlayer(){ int collisionsDownPlayer(int dot1, int dot2){
int collisionWindow = 0; int collisionWindow = 0;
int collisionTree = 0; int collisionCaseSolid = 0;
int collisionWater = 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 //collision window
if(player.y + player.h >= MAPSIZE * CELLSIZE){ if(player.y + player.h >= MAPSIZE * CELLSIZE){
collisionWindow = 1; collisionWindow = 1;
} }
//collisions //collisions
collisionTree = checkCollisionsTypeGround(dotDownRight, dotDownLeft, TREE); collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
collisionWater = checkCollisionsTypeGround(dotDownRight, dotDownLeft, WATER); return collisionWindow || collisionCaseSolid;
checkCollisionsFire(fireDownRight, fireDownLeft);
return collisionWindow || collisionTree || collisionWater;
} }
void moveRightPlayer(){ void moveRightPlayer(){
if(!collisionsRightPlayer()){ player.x = player.x + player.speed;
player.x = player.x + player.speed;
}
} }
void moveLeftPlayer(){ void moveLeftPlayer(){
if(!collisionsLeftPlayer()){ player.x = player.x - player.speed;
player.x = player.x - player.speed;
}
} }
void moveUpPlayer(){ void moveUpPlayer(){
...@@ -139,16 +120,18 @@ void moveUpPlayer(){ ...@@ -139,16 +120,18 @@ void moveUpPlayer(){
} }
void moveDownPlayer(){ void moveDownPlayer(){
if(!collisionsDownPlayer()){ player.y = player.y + player.speed;
player.y = player.y + player.speed;
}
} }
void manageMovement(){ void manageMovement(){
int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y); int dotTopRight = giveCaseBelowPosition(player.x+player.w, player.y);
int dotTopLeft = giveCaseBelowPosition(player.x, player.y); int dotTopLeft = giveCaseBelowPosition(player.x, player.y);
int dotDownRight = giveCaseBelowPosition(player.x+player.w, player.y+player.h);
int dotDownLeft = giveCaseBelowPosition(player.x, player.y+player.h);
int fireTopRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y)); int fireTopRight = searchFire(fireList, getPositionXInMap(player.x+player.w), getPositionYInMap(player.y));
int fireTopLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y)); int fireTopLeft = searchFire(fireList, getPositionXInMap(player.x), getPositionYInMap(player.y));
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));
if(keys[PLAYER_UP]){ if(keys[PLAYER_UP]){
if(!collisionsUpPlayer(dotTopRight, dotTopLeft)){ if(!collisionsUpPlayer(dotTopRight, dotTopLeft)){
...@@ -159,19 +142,28 @@ void manageMovement(){ ...@@ -159,19 +142,28 @@ void manageMovement(){
} }
} }
else if(keys[PLAYER_DOWN]){ else if(keys[PLAYER_DOWN]){
moveDownPlayer(); if(!collisionsDownPlayer(dotDownRight, dotDownLeft)){
player.isMoving = 1; moveDownPlayer();
player.direction = PLAYER_DOWN; checkCollisionsFire(fireDownRight, fireDownLeft);
player.isMoving = 1;
player.direction = PLAYER_DOWN;
}
} }
else if(keys[PLAYER_LEFT]){ else if(keys[PLAYER_LEFT]){
moveLeftPlayer(); if(!collisionsLeftPlayer(dotTopLeft, dotDownLeft)){
player.isMoving = 1; moveLeftPlayer();
player.direction = PLAYER_LEFT; checkCollisionsFire(fireTopLeft, fireDownLeft);
player.isMoving = 1;
player.direction = PLAYER_LEFT;
}
} }
else if(keys[PLAYER_RIGHT]){ else if(keys[PLAYER_RIGHT]){
moveRightPlayer(); if(!collisionsRightPlayer(dotTopRight, dotDownRight)){
player.isMoving = 1; moveRightPlayer();
player.direction = PLAYER_RIGHT; checkCollisionsFire(fireTopRight, fireDownRight);
player.isMoving = 1;
player.direction = PLAYER_RIGHT;
}
} }
else player.isMoving = 0; else player.isMoving = 0;
// //
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment