【问题标题】:Can b2Bodies/b2Fixtures be set up so that they are ignored by AABB queries or Ray-Casts?可以设置 b2Bodies/b2Fixtures 以便它们被 AABB 查询或 Ray-Cast 忽略吗?
【发布时间】:2014-01-13 13:10:07
【问题描述】:

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

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

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

虽然我当然可以在实体使用的侦听器对象中使用用户标签和过滤来过滤掉传感器,但我想知道 Box2D 中是否已经有一种方法可以使 AABB/Ray-Cast 查询忽略某些固定装置?

【问题讨论】:

    标签: box2d


    【解决方案1】:

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

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

    【讨论】:

    • 我不认为这会是免费的午餐...如果能够让系统过滤这些查询,那就太方便了因为我已经在那里了。不用担心...我可以工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    相关资源
    最近更新 更多