如何让物品与地板碰撞但不与玩家碰撞?

时间:2012-06-01 09:08:11

标签: box2d collision-detection

我希望物品(动态物体)由于重力而与地板(静止体)碰撞。但是我不希望玩家与地板上的物品碰撞,但是当玩家重叠物品时我需要回调(好像物品isSensor属性设置为true)。

有可能吗? 我尝试了一些带有类别位和掩码位的配置但没有成功。

之前我没有遇到此问题,因为项目的gravityScale设置为0,因此它们没有落在地板上。但现在他们需要回应引力。

感谢。

1 个答案:

答案 0 :(得分:0)

您必须实现扩展b2ContactListener的类。您可以选择拒绝PreSolve()虚拟功能中的冲突。在传递给b2Contact的{​​{1}}对象中,您可以获得2个灯具,如果您之前存储了指向用户数据的指针,则可以从中获取实际碰撞的内容。

在启动游戏引擎之前,创建PreSolve()子类的新对象,然后调用游戏世界对象的方法b2ContactListener来设置侦听器。

Sample code