2015-08-24 65 views
2

我创建了一个椭圆SKShapeNode,并且我希望该形状具有物理实体,但我找不到椭圆的SKPhysicsBody初始值设定项。如何使用Swift制作椭圆SKPhysicsBody

这是椭圆形的代码形状

attackCircle = SKShapeNode(ellipseOfSize: CGSize(width: 1000, height: 400)) 

对不起提前如果我没有问正确的问题。这是我在网上询问的第一个问题。

回答

3

您想使用CGPath将其设置为椭圆。还有iOS版构造7+它允许您拨打:

attackCircle = SKShapeNode(ellipseOfSize: CGSize(width: 1000, height: 400)) 
attackCircle.physicsBody = SKPhysicsBody(polygonFromPath: CGPathCreateWithEllipseInRect(CGRectMake(-500, -200, 1000, 400), nil)) 

您使用polygonFromPath初始化设置attackCircle.physicsBody的路径。 nil只是说它不是相对于其他任何东西。

+0

当我使用'attackCircle.physicsBody!.path = CGPathCreateWithEllipseInRect(CGRectMake(-500,-200,1000,400),nil)'弹出一条错误消息,提示“SKPhysicsBody没有名为path的成员”。所以我尝试了你的其他建议,并把它放在'attackCircle.physicsBody = SKPhysicsBody(polygonFromPath:CGPathCreateWithEllipseInRect(CGRectMake(-500,-200,1000,400),nil))'它工作。 – Malcolm

+0

好吧,看起来我的Swift搞砸了,根据Apple的在线文档,'SKPhysicsBody(polygonFromPath:)'可以在iOS 7上运行。我的Swift告诉我一切都是iOS 8+。我会编辑我的答案来反映这一点。 – Gliderman