1

複数の形状間の衝突を検出するための最良のアプローチを誰かが提案できるのだろうか。

iOS 4.2 および Cocos2D 1.0 を搭載した iPad でChipmunk使用しています。形状が両方のセグメント形状に接触しています (つまり、対応するスプライトが V の内側に快適に収まっています)。

何か案は?cpSpaceAddCollisionHandlerでコールバックを設定しましたが、現在衝突している形状が接触しているすべての形状のリストを持っていないようです。それは可能ですか、それとも情報を手動でコーディングして保存する必要がありますか?

ありがとう

4

1 に答える 1

0

スプライトオブジェクトにデータを保存する必要があると思います。

シマリスには、2 つのオブジェクトが最初に接触してから離れたときのコールバックがあります。

  • 開始: このステップで初めて 2 つの図形が接触し始めました。コールバックから true を返して衝突を正常に処理するか、false を返して Chipmunk が衝突を完全に無視するようにします。false を返すと、解決前および解決後のコールバックは実行されませんが、シェイプのオーバーラップが停止したときに別のイベントを受け取ります。

  • 分離: このステップで初めて 2 つの図形が接触しなくなりました。

「V 内に座る」オブジェクトに、V の各側に 2 つのブール値を持たせ、「開始」するときに true にし、分離するときに false にすることができます。

それらが両方とも true であり、オブジェクトがスリープ状態 (動きを停止) である場合 (私は box2d のバックグラウンドから来ましたが、同等のシマリスがそうであるかどうかはわかりません)。

それが役立つことを願っています。

于 2011-05-12T14:49:41.727 に答える