这是我的问题 图像
我想检查球是否接触,这是完美的。然而,有时带箭头的球没有被拾取,这当然是有意义的,因为它没有触及任何东西。但是,我想给予一点余地,这样如果一个球说4像素/ 0.001米远,它应该被认为是触摸。那么我有什么想法/如何实施呢?我查看了isTouching代码,这是我能想到的。
var b1 = body1;
var b2 = body2;
Transform xf;
Transform xf2;
b1.GetTransform(out xf);
b2.GetTransform(out xf2);
var touching = AABB.TestOverlap(b1.GetFixtureList().GetShape(), b2.GetFixtureList().GetShape(), ref xf, ref xf2);
if (!touching)
continue;
我仍然需要测试是否有一个遥远的球,我对我能做的事情一无所知。
答案 0 :(得分:1)
如果不知道所有课程是什么,很难给出确切的答案。但是,一般原则是增加你要检查的界限。例如,如果您的形状是半径为n的圆,则在检查碰撞时您可以使用半径为n + 2.请注意,您仍然使用半径n绘制圆。您只需使用增加的半径进行碰撞检测。
同样,对于AABB,您需要将边界增加几个像素。你如何做到这将取决于你的班级如何运作。