2014-01-21 87 views
0

哪個SKPhysicsBody身型我會用它來創建一個橢圓physicsBody?橢圓SKPhysicsBody

我知道我可以做曲線向外直線的,只是有它不是一個真正的橢圓形,但似乎必須有某種方式壓扁圓或創建一個?

回答

3

Create an elliptical CGPath並創建一個多邊形體與路徑:

CGPathRef path = CGPathRef CGPathCreateWithEllipseInRect(someRect, nil); 
SKPhysicsBody* body = [SKPhysicsBody bodyWithPolygonFromPath:path]; 

雖然所創建的路徑創建16個以上的頂點(內部限制)爲橢圓這是可能的。在這種情況下,它會崩潰,你必須手動創建路徑,確保它不超過16點。

如果身體不需要是動態的,你也可以使用bodyWithEdgeLoopFromPath:bodyWithEdgeChainFromPath: - 這兩個都對頂點的數量沒有限制。

+0

我試過,但它告訴我,'意想不到的類型名稱CGPathRef,預計expression' – majidarif

1

由於雪碧套件將不接受一個基於卷的物理機身採用橢圓CGPath(它可以做圓形,矩形,或多達12個頂點任何凸多邊形),你有兩個選擇:

  • 繪製多邊形親密關係的多達12個頂點橢圓 - 您可以使用一個輔助工具,例如:http://dazchong.com/spritekit/
  • 理念:如果你需要一個多面手,滾動行爲,添加基於圈物理學體,再加入孩子SKNode到你的精靈和偏移有點到一邊,然後根據小圓圈物理體添加到子節點。現在你有兩個圓形物理體。沖洗和重複的另一邊 - 我想你可以接近某種與少至三個彼此接近這樣的圈子云/橢圓形的。或者,您可以獲得更好的結果,只需將圓形物體與固定關節相連接。