【发布时间】:2013-12-10 11:13:23
【问题描述】:
我想弄清楚为什么我的大盒子不包含小盒子。
我有以下几点:
BoundingBox b = new BoundingBox(new Vector3(soldier.Position.X - 0.3f, soldier.Position.Y, soldier.Position.Z + 0.2f), new Vector3(soldier.Position.X + 0.3f, soldier.Position.Y + 1.8f, soldier.Position.Z - 0.2f));
BoundingBox b2 = new BoundingBox(new Vector3(soldier.Position.X - 0.015f, soldier.Position.Y + 0.01f, soldier.Position.Z + 0.07f), new Vector3(soldier.Position.X + 0.015f, soldier.Position.Y + 0.015f, soldier.Position.Z - 0.055f));
Console.WriteLine(b.Contains(b2));
Console.WriteLine(soldier.Position);
BoundingBoxRenderer.Render(b, GraphicsDevice, cam.View, cam.Projection, Color.Red);
BoundingBoxRenderer.Render(b2, GraphicsDevice, cam.View, cam.Projection, Color.White);
它会打印“不相交”。但是,较小的盒子 (b2) 肯定在较大的盒子 (b) 内。打印脱节是有原因的吗?
它在红框(b)内绘制白框(b2)就好了。 但是,它会打印:
Disjoint
{X:22.5 Y:0 Z:-21.5}
我的边界框有问题吗?
【问题讨论】:
标签: c# 3d xna collision-detection