在两个SKPhysicsBody对象之间创建SKPhysicsJoint是否会禁用它们之间的冲突检测?

时间:2013-09-22 01:53:43

标签: ios7 box2d-iphone sprite-kit

我注意到以下内容:

  1. 如果我创建一个具有物理边界(bodyWithEdgeLoopFromRect)的场景和两个节点,每个节点都有一个圆形的实体物理体(bodyWithCircleOfRadius),在将这两个节点添加到场景后,它们可能会与每个节点发生碰撞其他和场景的界限,如预期的那样。
  2. 如果我在两个节点之间添加任何类型的关节,则关节约束在它们之间保持,并且它们仍然可以碰撞场景的边界。但他们不再相互碰撞。
  3. 这对我来说似乎是个错误。我希望物理实体之间的任何关节都是它们基本碰撞机制的补充。有没有人经历过类似的行为或对我可能做错什么有任何暗示?

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

1 个答案:

答案 0 :(得分:0)

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