2013-11-23 141 views
2

是什麼SpriteKit物理機構邊緣

pathPhysics.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:physicsPath]; 

pathPhysics.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromPath:physicsPath]; 

的文檔之間的區別不是很清楚。這只是一個關閉的道路,而另一個沒有?

回答

4

是的,封閉與開放是主要區別。

但是可能會有內部優化。在Box2D中,邊緣鍊形狀用於創建像洞穴系統邊緣那樣的大型自由形狀形狀。邊緣鍊形狀與「正常」邊緣形狀相比具有優勢,它們可以連接在一起以創建無縫過渡。在Box2D中,如果創建多個邊,則在邊緣形狀上滑動的對象可能會在邊界處停止,而邊鍊形狀可以解決此問題。

鑑於我認爲這是公平的假設鍊形狀更好地優化自由形式的碰撞形狀,特別是如果它們由許多頂點組成。

有關詳細信息,請參閱Box2D manual(第4章:邊緣形狀,鍊形狀)。

+0

「在Box2D中,如果創建多個邊,則在邊緣形狀上滑動的對象可能會在邊界處停止,而邊緣鍊形狀可以解決此問題。」 - 你的意思是,node2通過鏈的開放端從node1(node1是邊緣鏈)滑落?或者更像完全不同的行爲? – mredig

+0

請參閱手冊中的說明。問題在於邊緣頂點可能會導致物體在直線上碰撞或停止。 – LearnCocos2D