2016-12-26 3 views
0

Я создал круг с UIBezierPath, который я добавляю в SKShapeNode. Круг отображается нормально. Но когда я хочу обновить путь, ничего не происходит. Я продолжаю видеть тот же начальный путь, который я создал. Должен ли я вызвать какую-то функцию обновления для правильного обновления пути? Изменения цвета и изменения хода работают нормально, но путь остается неизменным.Путь SKShapeNode не обновляется

override init(texture: SKTexture?, color: UIColor, size: CGSize) { 
    shape = SKShapeNode.init() 

    endAngle = CGFloat(endAngle) * CGFloat(M_PI)/180.0 
    startAngle = CGFloat(startAngle) * CGFloat(M_PI)/180.0 

    let circlePath : UIBezierPath = UIBezierPath.init(arcCenter: CGPoint(x:0,y:0), radius: 30, startAngle: startAngle, endAngle: endAngle , clockwise: true) 

    super.init(texture: texture, color: color, size: size) 

    shape!.path = circlePath.cgPath 
    shape!.fillColor = UIColor.red 
    addChild(shape!) 

} 


func changePath() { 
    self.endAngle -= 0.1 
    self.circle.path = nil 

    let circlePath : UIBezierPath = UIBezierPath.init(arcCenter: CGPoint(x:0,y:0), radius: 35, startAngle: startAngle, endAngle: self.endAngle , clockwise: true) 
    self.circle.path = circlePath.cgPath 
} 
+1

Является ли свойство 'circle'' SKShapeNode' вы имеете в виду? И это то же самое, что и «форма» SKShpaeNode, которую вы создаете в init? – nathan

+1

aaaargh !! Я такой идиот. вот в чем проблема. Я создал временный SKShapeNode, и я забыл изменить путь на этом временном узле. –

ответ

2

Похоже SKShapeNode вы имеете в виду в вашем changePath функции не то же самое в вышеприведенном инициализаторе. Обновление пути на правильном узле должно сделать трюк!

Смежные вопросы