【发布时间】:2022-01-26 21:58:55
【问题描述】:
我是使用该库并合并 box2d 的新手,我遇到了一个问题,那就是我创建了 2 个主角,它们都是动态的,我想知道是否有任何方法或任何功能可以表明他们可以相互碰撞,我不知道交叉
【问题讨论】:
标签: java android-studio libgdx box2d
我是使用该库并合并 box2d 的新手,我遇到了一个问题,那就是我创建了 2 个主角,它们都是动态的,我想知道是否有任何方法或任何功能可以表明他们可以相互碰撞,我不知道交叉
【问题讨论】:
标签: java android-studio libgdx box2d
您可以使用ContactListener,让 Box2D 世界通知您有关对象的每一次接触。因此你的主角的类需要实现ContactListener接口并在Box2D世界中注册(使用setContactListener方法)。
现在如果有任何联系发生,你的主角类的beginContact方法将被调用。
但这会发生在每个联系人身上。不仅是主角之间的联系,因此您必须进行过滤。这通常通过检查Contact 的Fixtures 来完成(即传递给您的beginContact 方法)。使用Fixtures可以得到碰撞的Body和它的用户数据,可以设置给主角来识别他。
如需了解更多信息,请查看this tutorial 或libGDX documentation on Box2D
【讨论】: