如何在Urho3D中创建具有偏移和旋转的2D复合体形状?

时间:2017-12-16 21:05:06

标签: urho3d

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

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

在Box2D中,这可以通过制作如How to combine Box2d bodies?中提到的多个灯具,然后使用shape.m_p.Set来实现。

我已经成功通过以下方式完成了这项工作:

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

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

然而在2D中,我在SetPosition类中找不到CollisionShape2D的模拟,所以所有的形状都是共同的,我不想要。最小的例子:https://github.com/cirosantilli/Urho3D-cheat/blob/76134e9e53e82a95447701f4a67646d47a76d320/compound.cpp#L35

1 个答案:

答案 0 :(得分:0)

<强> CollisionCircle2D::SetCenter

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

CollisionCircle2D::SetCenter方法采用行为与Vector2D类似的CollistionShape::SetPosition参数。

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

然而问题是自我回答的问题: - )