我正在使用Box2DWeb 2.1a,它是Box2DFlash的直接端口。Box2D Collision Filtering with Simultaneous Collisions
我使用接觸式過濾器(b2FilterData)通過設置類別和屏蔽位。這部分工作,但有一些令人不愉快的行爲,我沒有想到。當不應該碰撞的物品也與另一個應該碰撞的物體接觸時,這些物體也會相互碰撞。我不想要這個,但不知道如何擺脫它。
我使用ShouldCollide方法創建了一個b2ContactFilter,該方法是b2ContactFilter.prototype.ShouldCollide方法的精確副本,以便在聯繫時打印出類別和掩碼位的值。當發生錯誤的衝突時,我發現filter1.categoryBits和filter1.maskBits分別變爲0x0001和0x65535。這就好像b2FilterData是一個新實例,或者b2Body已經被分配了一個新的b2FixtureDef實例。不過,我不知道爲什麼會發生這種情況。
你能分享整個代碼嗎? – Shekhar 2012-06-03 10:50:54