【问题标题】:Is it possible in Libgdx that two bodies of type StaticBody can collide? (Box2D)在 Libgdx 中,两个 StaticBody 类型的物体是否有可能发生碰撞? (Box2D)
【发布时间】:2022-01-26 21:58:55
【问题描述】:

我是使用该库并合并 box2d 的新手,我遇到了一个问题,那就是我创建了 2 个主角,它们都是动态的,我想知道是否有任何方法或任何功能可以表明他们可以相互碰撞,我不知道交叉

【问题讨论】:

    标签: java android-studio libgdx box2d


    【解决方案1】:

    您可以使用ContactListener,让 Box2D 世界通知您有关对象的每一次接触。因此你的主角的类需要实现ContactListener接口并在Box2D世界中注册(使用setContactListener方法)。

    现在如果有任何联系发生,你的主角类的beginContact方法将被调用。

    但这会发生在每个联系人身上。不仅是主角之间的联系,因此您必须进行过滤。这通常通过检查ContactFixtures 来完成(即传递给您的beginContact 方法)。使用Fixtures可以得到碰撞的Body和它的用户数据,可以设置给主角来识别他。

    如需了解更多信息,请查看this tutoriallibGDX documentation on Box2D

    【讨论】:

    • 感谢您的回答,如果我阅读了文档,我设法以另一种方式做到了,我不知道这是否是最好的方式,但效果很好。我把 shape.setAsBox 放在 b2body.createFixture(shape,0);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    相关资源
    最近更新 更多