0

我想让物品(动态物体)由于重力而与地板(静态物体)发生碰撞。但是我不希望玩家与地板上的物品发生碰撞,尽管我需要在玩家与物品重叠时进行回调(就像 item isSensor 属性设置为 true 一样)。

是否可以?我尝试了一些使用类别位和掩码位的配置,但没有成功。

我之前没有遇到过这个问题,因为项目的gravityScale 设置为0,所以它们不会掉在地板上。但现在他们需要对重力做出反应。

谢谢。

4

1 回答 1

0

您必须实现一个扩展的类b2ContactListener。您可以选择拒绝PreSolve()虚函数中的碰撞。在b2Contact传递给 的对象中PreSolve(),您可以获得 2 个固定装置,如果您之前存储了指向用户数据的指针,您可以从中得出实际碰撞的内容。

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

示例代码

于 2012-06-01T09:23:10.107 回答