box2d 剛體碰撞設定方法
fixturedef.filter.categorybits指自己所屬的碰撞種類,
fixturedef.filter.maskbits指與其碰撞的種類;
b2fixturedef fixturedef;
注意 fixturedef.filter.categorybits 的值必須是2的倍數,假如有兩個body 他們的 filter.categorybits分別為2,4,則另乙個body要想與他們兩個都發生碰撞,則其filter.maskbits應該為: 2+4= 6.
對於fixturedef.filter.groupindex 屬性: 當其為負值時,表示該組的物件不發生碰撞,為正值則表示該組的物件發生碰撞;另外,要使兩個物件不發生碰撞,則: groupindex 屬性必須為負, 並且groupindex 的值一樣,這樣才能不發生碰撞, 其他情況都會發生碰撞(即兩個不相同的負值的body也會發生碰撞. 由上述可知).
控制body是否發生碰撞有兩種方法: 法1: 用fixturedef.filter.categorybits(自己所屬的碰撞種類)和 fixturedef.filter.maskbits(指定碰撞種類); 法2:直接使用fixturedef.filter.groupindex即可 當上述兩種情況都使用的話,則由fixturedef.filter.groupindex決定 因為fixturedef.filter.groupindex的優先順序高些 。
注:文章摘自
box2d 碰撞過濾
原帖 碰撞篩選就是乙個防止某些形狀發生碰撞的系統。按照具體需求設定哪些物體跟那些物體發生碰撞,跟哪些物體不發生碰撞。box2d通過種群跟組索引支援碰撞篩選。組索引比較簡單,設定其shapedef的groupindex值即可,例如boxdef.filter.groupindex 1。通過groupin...
物理引擎Box2D之剛體
剛體代表乙個質點,因此它只有位置,沒有大小。物理引擎box2d把剛體分為三種型別。1 靜態剛體。靜態剛體沒有質量,沒有速度,如果你想改變它的位置,只能通過 修改。2 稜柱剛體。稜柱剛體沒有質量,但有速度,引擎會根據速度計算並更新它的位置。3 動態剛體。動態剛體有質量也可以有速度,這是我們最常用的剛體...
box2d之剛體,定製器筆記
剛體 body 通過世界建立的物件,物理引擎裡面所有東西都是剛體 建立方式 定義乙個b2bodydef,b2world呼叫createbody的方法傳入此引數 定製器 fixture 帶有形狀,密度,摩擦力等屬性 建立方式 定義乙個b2fixturedef,呼叫剛體的createfixture方法為...