2

我注意到以下几点:

  1. 如果我创建了一个具有物理边界 ( bodyWithEdgeLoopFromRect) 和两个节点的场景,每个节点都有一个圆形实体物理体 ( bodyWithCircleOfRadius),那么在将这两个节点添加到场景中时,它们可以如预期的那样相互碰撞并与场景的边界发生碰撞。
  2. 但是,如果我在两个节点之间添加任何类型的关节,则关节约束在它们之间保持不变,并且它们仍然可以与场景的边界发生碰撞。但它们不再相互碰撞。

这对我来说似乎是一个错误。我希望物理体之间的任何关节除了它们的基本碰撞机制之外。有没有人经历过类似的行为或对我可能做错了什么有任何暗示?

(顺便说一句,我用 Box2d 标记它的原因是因为 SpriteKit 使用 Box2d,所以这可能是我不知道的 box2d 已知问题)。

4

1 回答 1

0

是的,这是 Box2D 的默认行为。我相信在 box2d 中您可以覆盖它,但建议不要这样做。原因是关节上的碰撞体将对抗关节限制,反之亦然,从而在模拟中引入不稳定性。其结果是两个物体为解决它们的联合约束和它们的碰撞响应而斗争引入了额外的力。

于 2013-09-22T08:47:58.100 回答