2016-01-31 41 views

回答

2

您可以嘗試使用SKCropNode,這允許您只顯示每個圓的一半。例如下面的代碼。

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) 


    } 

} 

我還沒有真正使用SKCropNode,以前多了,所以我不知道我的代碼是多麼好,但下面是我在我的iPhone得到的結果。

enter image description here

編輯:你應該能夠添加3 SKCropNode使透明圈的中心,如果需要的話。

編輯:下面的透明中心

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

+0

這正是我所期待的!非常感謝! – KeepItSimple