【问题标题】:Box2D | Resize fixture without destroying/recreating?Box2D |在不破坏/重新创建的情况下调整夹具的大小?
【发布时间】:2016-08-18 16:56:00
【问题描述】:

我想动态更改灯具大小。最初我会在每一帧都销毁夹具,然后用新的尺寸重新创建它。这样做的问题是,由于我每帧都重新创建夹具,因此 ContactListener 被搞砸了,因为它会在每一帧调用 beginContact 和 endContact(因为我一直在销毁/重新创建夹具)。有没有办法解决?我需要联系人监听器才能工作。谢谢!

【问题讨论】:

    标签: java android libgdx box2d


    【解决方案1】:

    我认为您正在寻找类似 @​​987654321@ 的东西(如果您使用半径作为大小)。

    在您的 ContactListener 中,您可以访问您身体的 Fixtures,例如(使用 Kotlin):

    override fun beginContact(contact: Contact) {
        contact.fixtureA.body.fixtureList[0].shape.radius *= 0.99f
        contact.fixtureB.body.fixtureList[0].shape.radius *= 0.99f
    }
    

    这将使两个接触的圆形物体的半径减少 1%。我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2012-05-14
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多