Box2D | 调整夹具大小而不破坏/重新创建?

我想动态地改变一个灯具的大小。 最初我会毁坏每一帧夹具,然后重新创建新的尺寸。 这个问题是,因为我每帧重新创建灯具,ContactListener是搞砸了,因为它会调用beginContact和endContact每一帧(因为我不断破坏/重新创建灯具)。 有没有办法解决? 我需要联系侦听器工作。 谢谢!

我想你正在寻找这样的东西(如果你使用半径作为一个尺寸)。

在您的ContactListener您可以访问您身体的灯具,例如( 使用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%。 我希望这会有所帮助。