2016-12-26 10 views
0

私はSKShapeNodeに追加するUIBezierPathで円を作成しました。 円が表示されます。しかし、パスを更新したいときは何も起こりません。私は私が作成したのと同じ初期経路を見ています。パスを正しく更新するための何らかの更新機能を呼び出さなければなりませんか?色の変更とストロークの変更はうまくいきますが、パスは変更されません。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'ですか?これはinitで作成する 'シェイプ' 'SKShpaeNode'と同じですか? – nathan

+1

aaaargh !!私はそんなにばかです。それはまさに問題の原因です。私は一時SKShapeNodeを作成し、その一時ノードのパスを変更するのを忘れました。 –

答えて

2

あなたchangePath関数内で参照しているSKShapeNodeが同じAN上記初期化子ではないように見えます。正しいノード上のパスを更新することはそのトリックを行うべきです!

関連する問題