Böyle SKEffectNode
birlikte SKShapeNode
kullanarak benzer bir şey elde edebilirsiniz:
override func didMoveToView(view: SKView) {
let effectNode = SKEffectNode()
let gap = CGFloat(M_PI_4/4.0)
for i in 0...3 {
let shape = SKShapeNode(circleOfRadius: 50)
shape.fillColor = .clearColor()
shape.lineWidth = 6.8
shape.strokeColor = .darkGrayColor()
let startAngle:CGFloat = CGFloat(i) * CGFloat(M_PI_2) + gap
let endAngle:CGFloat = startAngle + CGFloat(M_PI_2) - gap * 2
print("Iteration \(i) : start angle (\(startAngle * 180/CGFloat(M_PI)), end angle (\(endAngle * 180/CGFloat(M_PI)))")
shape.path = UIBezierPath(arcCenter: CGPointZero, radius: -50, startAngle: startAngle, endAngle: endAngle, clockwise: true).CGPath
effectNode.addChild(shape)
}
effectNode.position = CGPoint(x: frame.midX, y: frame.midY)
effectNode.shouldRasterize = true
addChild(effectNode)
}
sonucu: programlama yoluyla bir maske yapmak ve uygulamak olabilir
Ya SKCropNode
. SKCropNode, elbette bir halkanın (fillColor
, .clearColor()
ve strokeColor
uygun değere ayarlanmış) ebeveyni olacaktır.