From 1d85fd6e70ecba22d927922c8703b444cc6721eb Mon Sep 17 00:00:00 2001 From: posweg Date: Tue, 2 May 2017 20:56:32 +0200 Subject: [PATCH] Collision improvement --- .gitignore | 3 +++ main | Bin 23688 -> 23688 bytes main.cpp | 3 +++ player.cpp | 23 ++++++++++++++--------- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 6764b21..fe736d0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ *.o *.swo *.swn +*.swk +*.swl +*.swm diff --git a/main b/main index ddd2b71bd83f98a0a7510c5bfcc73a0631049fb1..d97feb2f7dcd2fa8679e21dd508205b8343bfec0 100755 GIT binary patch delta 4379 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 bX and movX < b2X) - or (movX + szW > bX and movX + szW <= b2X)) + or (movX + szW > bX and movX + szW <= b2X) + or (movX < bX and movX + szW > b2X)) and ((movY >= bY and movY < b2Y) - or (movY + szH > bY and movY + szH <= b2Y))){ + or (movY + szH > bY and movY + szH <= b2Y) + or (movY < bY and movY + szH > b2Y))){ movX += cos(angle) / 2; movY += sin(angle) / 2; collision = 1; @@ -165,7 +166,8 @@ int Player::check(SDL_Rect rectA){ if(collision == 1){ //Vertical adjustement if((movX > bX and movX < b2X) - or (movX + szW > bX and movX + szW < b2X)){ + or (movX + szW > bX and movX + szW < b2X) + or (movX < bX and movX + szW > b2X)){ while(movY + szH < bY){ movY++; velocityY = 0; @@ -176,7 +178,8 @@ int Player::check(SDL_Rect rectA){ } //Horizontal adjustement if((movY > bY and movY < b2Y) - or (movY + szH > bY and movY + szH < b2Y)){ + or (movY + szH > bY and movY + szH < b2Y) + or (movY < bY and movY + szH > b2Y)){ while(movX + szW < bX){ movX++; } @@ -193,7 +196,8 @@ int Player::check(SDL_Rect rectA){ //Check collsion type and reset velocities //Vertical collisions if((posX >= bX and posX < b2X) - or (posX + szW > bX and posX + szW <= b2X)){ + or (posX + szW > bX and posX + szW <= b2X) + or (posX < bX and posX + szW > b2X)){ //Top collision if(posY + szH == bY){ ground = true; @@ -212,8 +216,9 @@ int Player::check(SDL_Rect rectA){ } //Horizontal collisions if((posY >= bY and posY < b2Y) - or (posY + szH > bY and posY + szH <= b2Y)){ - //Left collision + or (posY + szH > bY and posY + szH <= b2Y) + or (posY < bY and posY + szH > b2Y)){ + //Left collision if(posX + szW == bX){ collision = 4; currentFrame = &plyFrame[2];