Как установить начальную точку (или начальный угол) пути, описанного CGPathCreateWithEllipseInRect?
У меня есть спрайт, который следует по пути, описанному 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 ответа
Вы должны нарисовать свой собственный путь вместо того, чтобы использовать CGPathCreateWithEllipseInRect
, добавляя точки в порядке, соответствующем тому, где вы хотите начать спрайт.
Попробуйте метод в этом посте: Как нарисовать круг, начиная сверху, а затем измените по мере необходимости.
@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)