SKShapeNode路径未更新

时间:2016-12-26 00:00:58

标签: sprite-kit uibezierpath 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 个答案:

答案 0 :(得分:2)

SKShapeNode函数中的changePath看起来与上面的初始化程序中的filteredLines = theLines.filter {myPredicate.evaluate(with: ($0))} 不同。更新正确节点上的路径应该可以解决问题!