Box2D中的b2DebugDraw使用示例

2021-06-20 07:54:23 字數 927 閱讀 3145

***

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中的核...