2015-05-29 42 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获取缩放路径值。 –