2013-11-26 66 views
0

我正在爲SKSpriteNode的physicsBody創建自定義邊緣路徑。SKSpriteNode不受自定義物理引力的影響身體

CGMutablePathRef edgePath = CGPathCreateMutable(); 

CGPathMoveToPoint(edgePath, NULL, -100, -70); 
CGPathAddLineToPoint(edgePath, NULL, -100, 40); 
CGPathAddLineToPoint(edgePath, NULL, -80, -20); 
CGPathAddLineToPoint(edgePath, NULL, 30, -20); 
CGPathAddLineToPoint(edgePath, NULL, 100, 100); 
CGPathAddLineToPoint(edgePath, NULL, 100, -70); 
CGPathCloseSubpath(edgePath); 

我曾嘗試使用以下代碼來分配physicsBody:

sprite.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromPath:edgePath]; 

sprite.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:edgePath]; 

sprite.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:edgePath]; 

這些都不使通過重力影響的子畫面。

但是,如果我使用簡單的bodyWithCircleOfRadius:,精靈將受到重力的影響。

任何人都可以拋出一些爲什麼發生這種情況?

+0

bodyWithPolygonFromPath應該工作。其他人不會。粘貼代碼如何將physicsBody附加到節點上,請 –

回答

2

邊緣循環和鏈條創建靜態(不可移動)物體。它們不會受到重力的影響。

多邊形的形狀體應受重力影響。但是,您必須確保多邊形具有逆時針繞組,不是自相交的,並且其形狀是凸的。否則結果是不可預測的。

+0

這裏創建的形狀是凹形的。這就是爲什麼它不工作。 – ZeMoon