***
b2debugdraw提供除錯功能,由於box2d中所有物件都是不可見的,要建立可見物件我們得用剛體定義中的userdata屬性來建立自己的圖形,如果不建立自己的圖形,則用b2debugdraw類來實現物體的可見,方便除錯。
具體**:
private function showdebug():void
b2debugdraw類中有7個標誌常量:
b2debugdraw.e_aabbbit :表示顯示剛體的邊界盒
b2debugdraw.e_jointbit :表示顯示剛體相連時的節點和連線
b2debugdraw.e_obbbit :顯示凸多邊形的邊界,不顯示圓的邊界
b2debugdraw.e_pairbit:draw broad-phase pairs(不知如何翻譯是好用原文)
b2debugdraw.e_coreshapebit:draw core (toi) shapes
b2debugdraw.e_shapebit:顯示剛體的形狀,不管是何種形狀
b2debugdraw.e_centerofmassbit:顯示質量中心。重心?質心?
上面的**我們可以設定繪製剛體的線條透明度,粗細,以及填充剛體顏色的透明度,但我們無法設定填充剛體所用的顏色,在box2d中,預設有三中顏色來填充剛體,即紅色,綠色,灰色。
紅色---------表示已經處於休眠狀態的剛體
綠色---------表示靜止的剛體,沒有密度質量的剛體
灰色---------表示正在移動的剛體
不過,我們可以修改b2world類中1060-1074 行的**來修改這三種預設的顏色,b2world中的**如下:
for (s = b.getshapelist(); s; s = s.m_next)
else if (b.issleeping())
else
}
Box2D中的距離計算
gdc 2010 session physics for programmers,erin catto computing distance,pdf erin catto是二維物理庫box2d的開發者 內容 1 點和基本形狀的距離計算 2 點和複雜幾何體的距離計算 gjk 3 複雜幾何體之間的距離計...
box2d 碰撞過濾
原帖 碰撞篩選就是乙個防止某些形狀發生碰撞的系統。按照具體需求設定哪些物體跟那些物體發生碰撞,跟哪些物體不發生碰撞。box2d通過種群跟組索引支援碰撞篩選。組索引比較簡單,設定其shapedef的groupindex值即可,例如boxdef.filter.groupindex 1。通過groupin...
Box2D學習筆記
box2d是乙個用於遊戲的2d剛體 庫,程式設計師可以在他們的遊戲裡使用他們,也可以是的自己的物體運動的更可信。讓他看起來更加接近現實。物理引擎是乙個程式性的動畫系統。而不是由動畫師去移動物體。這一切都是建立在牛頓力學的基礎之上。box2d最初是用c 來寫的,之後有被多種語言所實現。box2d中的核...