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){
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){
if(player.invisible==0 && (dot1==1 || dot2==1) && player.currentHP>0){
player.currentHP = player.currentHP - 1;
......@@ -50,105 +59,79 @@ void checkCollisionsFire(int dot1, int dot2){
}
}
int collisionsLeftPlayer(){
int collisionsLeftPlayer(int dot1, int dot2){
int collisionWindow = 0;
int collisionTree = 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));
int collisionCaseSolid = 0;
//collision window
if(player.x <= 0){
collisionWindow = 1;
}
//collisions
collisionTree = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, TREE);
collisionWater = checkCollisionsTypeGround(dotTopLeft, dotDownLeft, WATER);
checkCollisionsFire(fireTopLeft, fireDownLeft);
return collisionWindow || collisionTree || collisionWater;
collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
return collisionWindow || collisionCaseSolid;
}
int collisionsRightPlayer(){
int collisionsRightPlayer(int dot1, int dot2){
int collisionWindow = 0;
int collisionTree = 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));
int collisionCaseSolid = 0;
//collision window
if(player.x + player.w >= MAPSIZE * CELLSIZE){
collisionWindow = 1;
}
//collisions
collisionTree = checkCollisionsTypeGround(dotTopRight, dotDownRight, TREE);
collisionWater = checkCollisionsTypeGround(dotTopRight, dotDownRight, WATER);
checkCollisionsFire(fireTopRight, fireDownRight);
return collisionWindow || collisionTree || collisionWater;
collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
return collisionWindow || collisionCaseSolid;
}
int collisionsUpPlayer(int dot1, int dot2){
int collisionWindow = 0;
int collisionTree = 0;
int collisionWater = 0;
int collisionCaseSolid = 0;
//collision window
if(player.y <= 0){
collisionWindow = 1;
}
//collisions
collisionTree = checkCollisionsTypeGround(dot1, dot2, TREE);
collisionWater = checkCollisionsTypeGround(dot1, dot2, WATER);
return collisionWindow || collisionTree || collisionWater;
//collisions solide like tree or water or rock(in the future)
collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
return collisionWindow || collisionCaseSolid;
}
int collisionsDownPlayer(){
int collisionsDownPlayer(int dot1, int dot2){
int collisionWindow = 0;
int collisionTree = 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));
int collisionCaseSolid = 0;
//collision window
if(player.y + player.h >= MAPSIZE * CELLSIZE){
collisionWindow = 1;
}
//collisions
collisionTree = checkCollisionsTypeGround(dotDownRight, dotDownLeft, TREE);
collisionWater = checkCollisionsTypeGround(dotDownRight, dotDownLeft, WATER);
checkCollisionsFire(fireDownRight, fireDownLeft);
return collisionWindow || collisionTree || collisionWater;
collisionCaseSolid = collisionsCaseSolid(dot1, dot2);
return collisionWindow || collisionCaseSolid;
}
void moveRightPlayer(){
if(!collisionsRightPlayer()){
player.x = player.x + player.speed;
}
}
void moveLeftPlayer(){
if(!collisionsLeftPlayer()){
player.x = player.x - player.speed;
}
}
void moveUpPlayer(){
player.y = player.y - player.speed;
}
void moveDownPlayer(){
if(!collisionsDownPlayer()){
player.y = player.y + player.speed;
}
}
void manageMovement(){
int dotTopRight = giveCaseBelowPosition(player.x+player.w, 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 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(!collisionsUpPlayer(dotTopRight, dotTopLeft)){
......@@ -159,20 +142,29 @@ void manageMovement(){
}
}
else if(keys[PLAYER_DOWN]){
if(!collisionsDownPlayer(dotDownRight, dotDownLeft)){
moveDownPlayer();
checkCollisionsFire(fireDownRight, fireDownLeft);
player.isMoving = 1;
player.direction = PLAYER_DOWN;
}
}
else if(keys[PLAYER_LEFT]){
if(!collisionsLeftPlayer(dotTopLeft, dotDownLeft)){
moveLeftPlayer();
checkCollisionsFire(fireTopLeft, fireDownLeft);
player.isMoving = 1;
player.direction = PLAYER_LEFT;
}
}
else if(keys[PLAYER_RIGHT]){
if(!collisionsRightPlayer(dotTopRight, dotDownRight)){
moveRightPlayer();
checkCollisionsFire(fireTopRight, fireDownRight);
player.isMoving = 1;
player.direction = PLAYER_RIGHT;
}
}
else player.isMoving = 0;
//
if(player.invisible==1){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment