2014-01-11 55 views
0

請提示,因爲可能在表示vvide頂點的物理對象上具有圓角邊緣? 例如,有一個規則矩形,這就是它是如何描述:cocos2d + box2d:物理對象中的圓角邊緣

b2Vec2 vertices[] = { 
     b2Vec2(0.0*_scale/PTM_RATIO,0.0*_scale/PTM_RATIO), 
     b2Vec2(512.0*_scale/PTM_RATIO,0.0*_scale/PTM_RATIO), 
     b2Vec2(512.0*_scale/PTM_RATIO,32.0*_scale/PTM_RATIO), 
     b2Vec2(0.0*_scale/PTM_RATIO,32.0*_scale/PTM_RATIO) 
    }; 

至於什麼可以圓了自己的優勢?

回答

1

這是可能的,通過使用多邊形形狀和頂點設置來表示圓角。然而,這可能需要增加Box2D的內部極限(如果我沒記錯的話)每個多邊形的8個頂點。

或者,您可以使用矩形形狀和4個圓形,每個角落各一個。然而,圓形的位置永遠不會使矩形的角不會伸出圓圈,分別圓圈與矩形的邊完全對齊。

0

這取決於你需要多少舍入。

您可以使用多個頂點的多邊形形狀,但這需要增加內部限制,這增加了默認存儲爲ALL多邊形。

您可以使用八角形,其中一些圓形在角上重疊。你可以從兩個多邊形中選擇一個,一個用於頂部,另一個用於底部(每個5邊,就像一個矩形,兩個角被45度斜面代替)。

但是,我認爲最好的方法是使用ChainShape。您可以創建頂點的LOTS。在一個SO問題(here)中,我使用其中之一創建了一個輪盤賭輪。代碼和演示可在鏈接中找到。絕對足夠滿足大多數需求。

對您有幫助嗎?