2
私はbox2dの使い方を学んでいますが、衝突の仕組みは全く分かりません。誰かがどのように働いているかについて深く説明することはできますか?私はコンタクトリスナーのためのドキュメントを見てきましたが、私はそれらをあいまいに理解し、実際にどのように使用するのか分かりません。C++でBox2Dを使用して衝突を検出する方法
私はbox2dの使い方を学んでいますが、衝突の仕組みは全く分かりません。誰かがどのように働いているかについて深く説明することはできますか?私はコンタクトリスナーのためのドキュメントを見てきましたが、私はそれらをあいまいに理解し、実際にどのように使用するのか分かりません。C++でBox2Dを使用して衝突を検出する方法
考えられるのは、b2ContactListenerから継承して独自のリスナーを実装できるということです。このように:
class MyListener : public b2ContactListener {
virtual void Add (b2ContactPoint *point);
virtual void Persist (b2ContactPoint *point);
virtual void Remove (b2ContactPoint *point);
virtual void Result (b2ContactPoint *point);
};
MyListenerはこれらの機能を定義する必要があります。まず、いくつかのデバッグテキストを出力させるだけです。 あなたは、あなたがこのリスナーを使用することをBOX2Dを伝え、次のように:今
MyListener listener;
yourB2World->SetContactListener(&listener);
、リスナーはb2ContactPointで、それに関するすべての情報を、すべての衝突のためのコールバックを取得します。