Jump to content

  • Log In with Google      Sign In   
  • Create Account

14 years ago on June 15th Gamedev.net was first launched! We want to thank all of you for being part of our community and hope the best years are ahead of us. Happy birthday Gamedev.net!

TheRealVZdemon

Member Since 15 May 2012
Offline Last Active May 21 2012 03:25 PM
-----

Topics I've Started

Simple hitTest with directions

15 May 2012 - 02:52 PM

Hello people, it's my first time here so i not sure this is the right forum for the topic but aways, i trying to make a box collision function that returns what direction the box has collided (1 for left, 2 for right, 3 for up, 4 for down) and returns 0 in no collision, but i have econtered various issues in what seems to me like functional logic. here's my funcion i using SDL for C btw. I'd be happy if someone could point out the problem with my code or provide a better solution (in code) it would help very much.

int TestCollision(SDL_Rect a, SDL_Rect b){
   int Aleft = a.x;
   int Aright = a.x + a.w;
   int Atop = a.y;
   int Abottom = a.y+a.h;
  
   int Bleft = b.x;
   int Bright = b.x + b.w;
   int Btop = b.y;
   int Bbottom = b.y+b.h;
   bool bottom = Abottom < Bbottom;
   bool top = Atop > Btop;
   bool left = Aright > Bleft;
   bool right = Aleft < Bright;
   if((left && top) || (left && bottom))
	    return 2;
  
   if((right && top) || (right && bottom))
	    return 1;
	   
   if((top && left) || (top && right))
	    return 3;
  
   if((bottom && left) || (bottom && right))
	    return 4;
  
   return 0;
}

thanks for reading :)

PARTNERS