Как сместить центр дуги в SpriteKit? - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть один круг и 4 дуги, расположенные вокруг этого круга. В настоящее время я рисую дуги так:

fileprivate func addArc(from startAngle: CGFloat, to endAngle: CGFloat, of color: SKColor, with text: String) {
    let arc = UIBezierPath(arcCenter: CGPoint(x: 0, y: 0), radius: 100, startAngle: startAngle, endAngle: endAngle, clockwise: false)
    arc.flatness = 100

    let node = SKShapeNode()
    node.lineWidth = 36
    node.strokeColor = color
    node.path = arc.cgPath

    addChild(node)
}

и когда я позже попытаюсь добавить новый LabelNode в мою дугу,

let labelNode = SKLabelNode(text: text)
labelNode.horizontalAlignmentMode = .center
labelNode.verticalAlignmentMode = .center

node.addChild(labelNode)

что NodeLabel добавляется в середину круга, но не в середину дуг. Я обнаружил, что ошибка в этой строке:

let arc = UIBezierPath(arcCenter: CGPoint(x: 0, y: 0), radius: 100, startAngle: startAngle, endAngle: endAngle, clockwise: false)

где я устанавливаю arcCenter. Итак, вопрос в том, как я могу сместить центр этих дуг, чтобы labelNodes были добавлены в дуги, а не в круг?

...