2013-11-23 115 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