如何设置CGPathCreateWithEllipseInRect描述的路径的起点(或起始角度)?

时间:2015-07-10 21:03:42

标签: swift ellipse skaction cgpath

我有一个精灵,它遵循CGPathCreateWithEllipseInRect描述的路径。它总是从最右边的点开始(我猜因为默认是从角度= 0开始)。如何从最顶点(角度=π/ 2)开始?我目前的代码是这样的:

    let pathCenter = CGPoint(x: frame.width/2 , y: frame.height/2)
    let pathDiameter = CGFloat(frame.height/4)
    let path = CGPathCreateWithEllipseInRect(CGRect(origin: pathCenter, size: CGSize(width: pathDiameter * 1.5, height: pathDiameter * 0.8)), nil)
    let followPath = SKAction.followPath(path, asOffset: false, orientToPath: false, duration: 6.0)
    sprite.runAction(SKAction.repeatActionForever(followPath))

2 个答案:

答案 0 :(得分:2)

您必须绘制自己的路径,而不是使用CGPathCreateWithEllipseInRect,按照与您想要精灵开始的位置对应的顺序添加点。

尝试此帖子中的方法:How to draw a circle starting at the top,然后根据需要进行修改。

答案 1 :(得分:1)

@PatrickLynch ...谢谢我能够从圆形路径的最顶端开始我的精灵,就像这样...
var path = CGPathCreateMutable() CGPathAddArc(path!, nil, 100, 100, 100, CGFloat(M_PI_2) , CGFloat(2*M_PI + M_PI_2) , false) var followArc = SKAction.followPath(path, asOffset: true, orientToPath: false, duration: 2.0) sprite.runAction(followArc)