/ / ¿Cómo dibujar un círculo hueco con dos colores diferentes? - swift, sprite-kit, skshapenode

¿Cómo dibujar un círculo hueco con dos colores diferentes? - swift, sprite-kit, skshapenode

Estoy muy familiarizado con el dibujo de un rellenoCree el nodo de forma CreateEllipseInRect, pero me preguntaba si "hay una manera de hacer esto mediante programación. Quiero un círculo que se divida a través del centro con dos colores separados en cada lado. No tengo código, ya que no tengo idea de por dónde empezar. esta.

algo como esto

Ayuda muy apreciada.

Respuestas

3 para la respuesta № 1

Puedes intentar usar SKCropNode, esto te permite mostrar solo la mitad de cada círculo. Vea el código de abajo, por ejemplo, de esto.

class GameScene: SKScene {
override func didMoveToView(view: SKView) {

anchorPoint = CGPointMake(0.5, 0.5)

// Half Circle #1

let myCrop1 = SKCropNode()

let myMask1 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask1.position.y = -50

let circle1 = SKShapeNode(circleOfRadius: 50)
circle1.lineWidth = 0
circle1.fillColor = UIColor.blueColor()

myCrop1.addChild(circle1)
myCrop1.maskNode = myMask1
addChild(myCrop1)

// Half Circle #2

let myCrop2 = SKCropNode()

let myMask2 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask2.position.y = 50

let circle2 = SKShapeNode(circleOfRadius: 50)
circle2.lineWidth = 0
circle2.fillColor = UIColor.redColor()

myCrop2.addChild(circle2)
myCrop2.maskNode = myMask2
addChild(myCrop2)


}

}

Realmente no he usado SKCropNode mucho antes, así que no estoy seguro de qué tan bueno es mi código, pero a continuación está el resultado que obtuve en mi iPhone.

enter image description here

EDITAR: Debería poder agregar un tercer SKCropNode para hacer transparente el centro del círculo si es necesario.

EDITAR: Abajo para centro transparente

class GameScene: SKScene {
override func didMoveToView(view: SKView) {

anchorPoint = CGPointMake(0.5, 0.5)

let transparentCenterMask = SKShapeNode(circleOfRadius: 50)
transparentCenterMask.lineWidth = 20
let transparentCenterCrop = SKCropNode()
transparentCenterCrop.maskNode = transparentCenterMask

// Half Circle #1

let myCrop1 = SKCropNode()

let myMask1 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask1.position.y = -50

let circle1 = SKShapeNode(circleOfRadius: 50)
circle1.lineWidth = 0
circle1.fillColor = UIColor.blueColor()

myCrop1.addChild(circle1)
myCrop1.maskNode = myMask1
transparentCenterCrop.addChild(myCrop1)

// Half Circle #2

let myCrop2 = SKCropNode()

let myMask2 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(100, 100))
myMask2.position.y = 50

let circle2 = SKShapeNode(circleOfRadius: 50)
circle2.lineWidth = 0
circle2.fillColor = UIColor.redColor()

myCrop2.addChild(circle2)
myCrop2.maskNode = myMask2
transparentCenterCrop.addChild(myCrop2)

addChild(transparentCenterCrop)


}

}

enter image description here