# Collision Detection

This topic is 2766 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Well, Iv'e been trying to implement collision detection to a ball and a plane surface, supposely a rectangle.
Theres a lot of rectangles, I store them in a vector.
By far, i havent been impressed by the collision detection, Any help if im doing it wrong?

 //This is how i store a vector of rectangles; static std::vector<std::vector<Bricks> > Level(sizeof(map)/sizeof(*map), std::vector<Bricks>(sizeof(map)/sizeof(*map))); //Collision detection bool Brick::Collide( float x, float y, float r ) { float X, Y; for( size_t xSize = 0; xSize < Level.size(); xSize++ ) { for( size_t ySize = 0; ySize < Level[xSize].size(); ySize++ ) { if(Level[xSize][ySize].alive) { if( x < Level[xSize][ySize].x ) { X = Level[xSize][ySize].x; } else if( x > Level[xSize][ySize].x + Level[xSize][ySize].w ) { X = Level[xSize][ySize].x + Level[xSize][ySize].w; } else { X = x; } if( y < Level[xSize][ySize].y ) { Y = Level[xSize][ySize].y; } else if( y > Level[xSize][ySize].y + Level[xSize][ySize].h ) { Y = Level[xSize][ySize].y + Level[xSize][ySize].h; } else { Y = y; } if( sqrt( pow((long double)X-x, 2)+pow((long double)Y-y, 2)) < r ) { return true; } } } } return false; } 

Can anyone help me out, To do a almost-perfect collision detection.
Also, How do i implement collision for the sides of the rectangles, Since the ball is a moving object, when the ball hits the sides, It goes crazy, like zigzag or something.
Thanks.

##### Share on other sites
It doesn't sound like your problem is in the collision detection, more like in collision response.

• ### Game Developer Survey

We are looking for qualified game developers to participate in a 10-minute online survey. Qualified participants will be offered a \$15 incentive for your time and insights. Click here to start!

• 13
• 30
• 9
• 16
• 12