0

我想将两个形状连接在一起,以使它们的相对位置始终保持不变。

形状必须放置在相对于节点中心的特定偏移处。

在 Box2D 中,这可以通过制作多个夹具来实现,如:如何组合 Box2d 主体?,然后使用shape.m_p.Set.

我设法通过以下方式在 3D 中做到这一点:

  • Node::CreateComponent<CollisionCircle2D>多次调用
  • 使用CollistionShape::SetPosition方法设置偏移量

最小可运行示例:https ://github.com/cirosantilli/Urho3D-cheat/blob/76134e9e53e82a95447701f4a67646d47a76d320/compound3d.cpp#L101

SetPosition然而在 2D 中,我在课堂上找不到类似的CollisionShape2D东西,所以所有的形状都是同心的,这是我不想要的。最小示例:https ://github.com/cirosantilli/Urho3D-cheat/blob/76134e9e53e82a95447701f4a67646d47a76d320/compound.cpp#L35

4

1 回答 1

0

CollisionCircle2D::SetCenter

出于某种原因,类似的方法不在基类CollisionShape2D上,而是在派生类上,例如CollisionCircle2D::SetCenter

CollisionCircle2D::SetCenter方法接受一个Vector2D行为就像CollistionShape::SetPosition.

工作代码位于:https ://github.com/cirosantilli/Urho3D-cheat/blob/4a03873e40ef83b488bb8ca36d6f35c5d046de28/compound.cpp#L44

然而,在提问时自己回答了问题:-)

于 2017-12-16T21:05:06.047 回答