как да задам начална точка (или начален ъгъл) на път, описан от 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))

person abacaba    schedule 10.07.2015    source източник


Отговори (2)


Трябва да начертаете своя собствена пътека, вместо да използвате CGPathCreateWithEllipseInRect, добавяйки точки в ред, който съответства на мястото, където искате да започне спрайтът.

Опитайте метода в тази публикация: Как да нарисувате кръг, започващ от горната част и след това променете според нуждите.

person Patrick Lynch    schedule 10.07.2015

@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)

person abacaba    schedule 14.07.2015