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: 269
collision-detection
|xna-4.0
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