2016-03-18 15 views
0

Şu anda SpriteKit oyununda bir oyun oluşturuyorum. Bu oyunda, bu dairenin ana hatlarındaki küçük bir boşluk (lar) içeren bir çemberin anahatlarını çizmeye çalışıyorum (muhtemelen çemberin tüm çevresini yaklaşık 1/8). İşte görselleştirdiğim şeyin çizdiği bir resim.Küçük boşluk ile daire çizme anahat Sprite Kit Swift

enter image description here

Nasıl bu kullanarak SpriteKit yapardınız? SKShapeNode kullanabilir miyim? Herhangi bir yardım takdir edilecektir. Teşekkür ederim.

cevap

2

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

crosshair

Ya SKCropNode. SKCropNode, elbette bir halkanın (fillColor, .clearColor() ve strokeColor uygun değere ayarlanmış) ebeveyni olacaktır.