可以设置b2Bodies / b2Fixtures,以便AABB查询或Ray-Casts忽略它们吗?

时间:2014-01-13 13:10:07

标签: box2d

我正在构建一个2-D自上而下的游戏,我需要有一个用于寻路的区域动态图。

我在考虑在感兴趣的区域上覆盖Box2D体(圆形或正方形)网格作为“传感器”。这些对象都是静态物体并标记为传感器,因此没有碰撞响应,但是检测到碰撞,我可以使用此(碰撞回调)将导航图中的节点标记/取消标记为占用,以便实体可以在它们周围导航

移动实体仍然会将光线投射和AABB查询作为与环境交互的一部分(寻找特定事物等)。我想让他们的查询与传感器网相交。

虽然我当然可以使用usertags并过滤实体使用的侦听器对象来过滤传感器,但我想知道Box2D中是否已经有办法让AABB / Ray-Cast查询忽略某些灯具?

1 个答案:

答案 0 :(得分:1)

此检查通常最好在查询回调中完成。 b2RayCastCallback和b2QueryCallback都有一个ReportFixture函数,可以为你提供一个夹具,这样你就可以检查是否要忽略它。

(我不确定这是你在问题的最后一段中的意思......如果是这样,那么我想答案就是'不':)