2

私は次のことに気付きました:

  1. 物理境界 ( bodyWithEdgeLoopFromRect) と、それぞれが円形の固体物理ボディ ( bodyWithCircleOfRadius) を持つ 2 つのノードを持つシーンを作成すると、これら 2 つのノードをシーンに追加すると、予想どおり、互いに衝突したり、シーンの境界と衝突したりします。
  2. ただし、2 つのノード間に任意のタイプのジョイントを追加すると、ジョイントの制約がそれらの間に保持され、両方ともシーンの境界に対して衝突する可能性があります。しかし、それらはもはや互いに衝突しません。

これは私にはバグのようです。物理体間のジョイントは、基本的な衝突メカニズムに追加されると思います。誰かが同様の行動を経験したことがありますか、または私が間違っている可能性があることについてのヒントはありますか?

(ところで、これに Box2d のタグを付ける理由は、SpriteKit が Box2d を使用しているためです。これは、私が気付いていない box2d の既知の問題である可能性があります)。

4

1 に答える 1

0

はい、これは Box2D のデフォルトの動作です。box2d はオーバーライドできると信じていますが、オーバーライドしないことをお勧めします。その理由は、ジョイント上で衝突するボディがジョイントの制限と戦い、その逆も同様であり、シミュレーションが不安定になるためです。その結果、ジョイント拘束と衝突応答の両方を解決しようと戦う 2 つのボディが、追加の力を導入します。

于 2013-09-22T08:47:58.100 に答える