私はjavascriptとbox2dにかなり慣れていません.2つのオブジェクトが衝突したときにカスタム関数を呼び出す方法を誰かが知っているかどうか疑問に思っていました. 成功せずに を使用するいくつかの例を使用してみましたb2ContactListener
。オブジェクトを別のオブジェクトの上に配置し、標準の Box2d 物理演算に任せました。
2 つのコンソール出力を受け取ります。1 つ目は次のコードでnull
、2 つ目はBall
次のコードです。
var listener = new Box2D.Dynamics.b2ContactListener;
listener.BeginContact = function(contact) {
console.log(contact.GetFixtureA().GetBody().GetUserData());
console.log(contact.GetFixtureB().GetBody().GetUserData());
};.
衝突する必要がある 2 つのオブジェクトは、b2_dynamicbody
(ボール) とb2PolygonShape
です。(矩形)。bodyDef.userData = "Ball";
Ball.js と Mouse.js で使用して、それらbodyDef.userData = "Mouse";
がヒットしたかどうかを識別しようとします。代わりに、ボールのみが表示されます。
次に、これは衝突を検出するための正しい方法ではないと確信しています:PI 十分に説明したことを願っています。誰かが私を正しい方向に導くことができますか?