Box2D 一个夹具用于多个物体

Box2D One fixture for multiple bodies

我有一个可重复的块类型,它使用相同的主体定义和夹具定义。我应该为每个块创建 bodyDef 和 fixtureDef,还是每次只更改 bodyDef 的位置并重复使用相同的对象?

你不能像标题所说的那样为多个物体使用一个夹具,因为每个夹具都附加到一个特定的 body,并随它一起销毁。

但是,您可以使用相同的 body 定义来创建多个主体,并使用相同的夹具定义来创建多个夹具(可能附加到不同的主体)。这也是更好的做法,因为它可以节省内存和代码行。

Box2D manual 的第 7.2 节中有说明:

Box2D copies the data out of the body definition; it does not keep a pointer to the body definition. This means you can recycle a body definition to create multiple bodies.