2015-05-29 32 views
0

的SKShapeNode這是使用SKActions縮放,像這樣:如何獲得代表縮放SKShapeNode的新CGPath?

var shapeNode: SKShapeNode = SKShapeNode(points: UnsafeMutablePointer(points), count: points.count) 
shapeNode.runAction(SKAction.scaleTo(16, duration: 2)) 

我想,然後更新節點的SKPhysicBody以匹配新的大小:

shapeNode.physicsBody = SKPhysicsBody(polygonFromPath: shapeNode.path) 

但是,它看起來像shapeNode.path回報路徑是其原始大小,而不是新大小的路徑。

有沒有辦法獲得新尺寸的路徑?

+0

物理體的大小會自動更新(至少應該是)。你可以使用'skView.showsPhysics = true'來檢查'SKPhysicsBody'是否正確更新。但是,我測試了您的代碼,並且一切似乎都正常。 – ABakerSmith

回答

0

您可能不會使用SKAction縮放shapeNode。 SKAction只是一個「動作」,它不會改變節點的屬性。試試這個:

shapeNode.xScale = 16.0 
shapeNode.yScale = 16.0 

然後它會返回一個新的縮放大小給你。

+0

您可以使用'SKAction'來縮放shapeNode,您是否測試了問題中的代碼?而且,大多數'SKAction's被用來改變一個節點的屬性。 – ABakerSmith

+0

@ABakerSmith對不起,意思是「改變」,我的意思是SKAction不能幫你存儲改變的值。您無法獲取操作更改的值,這是您的案例中返回的shapeNode.path。但是您可以使用xScale/yScale獲取縮放路徑值。 –