我有一个精灵,它遵循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))
答案 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)