【发布时间】:2016-08-18 16:56:00
【问题描述】:
我想动态更改灯具大小。最初我会在每一帧都销毁夹具,然后用新的尺寸重新创建它。这样做的问题是,由于我每帧都重新创建夹具,因此 ContactListener 被搞砸了,因为它会在每一帧调用 beginContact 和 endContact(因为我一直在销毁/重新创建夹具)。有没有办法解决?我需要联系人监听器才能工作。谢谢!
【问题讨论】:
我想动态更改灯具大小。最初我会在每一帧都销毁夹具,然后用新的尺寸重新创建它。这样做的问题是,由于我每帧都重新创建夹具,因此 ContactListener 被搞砸了,因为它会在每一帧调用 beginContact 和 endContact(因为我一直在销毁/重新创建夹具)。有没有办法解决?我需要联系人监听器才能工作。谢谢!
【问题讨论】:
我认为您正在寻找类似 @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%。我希望这会有所帮助。
【讨论】: