Basic 3D Collision detection in XNA 4.0

Posted by NDraskovic on Game Development See other posts from Game Development or by NDraskovic
Published on 2012-07-09T08:48:22Z Indexed on 2012/07/09 9:23 UTC
Read the original article Hit count: 237

I have a problem with detecting collision between 2 models using BoundingSpheres in XNA 4.0. The code I'm using i very simple:

private bool IsCollision(Model model1, Matrix world1, Model model2, Matrix world2)
{
for (int meshIndex1 = 0; meshIndex1 < model1.Meshes.Count; meshIndex1++)
{
    BoundingSphere sphere1 = model1.Meshes[meshIndex1].BoundingSphere;
    sphere1 = sphere1.Transform(world1);

    for (int meshIndex2 = 0; meshIndex2 < model2.Meshes.Count; meshIndex2++)
    {
        BoundingSphere sphere2 = model2.Meshes[meshIndex2].BoundingSphere;
        sphere2 = sphere2.Transform(world2);

        if (sphere1.Intersects(sphere2))
            return true;
    }
}
return false;

}

The problem I'm getting is that when I call this method from the Update method, the program behaves as if this method always returns true value (which of course is not correct). The code for calling is very simple (although this is only the test code):

if (IsCollision(model1, worldModel1, model2, worldModel2))
            {
                Window.Title = "Intersects";
            }

What is causing this?

© Game Development or respective owner

Related posts about collision-detection

Related posts about xna-4.0