2015-10-22 108 views
1

我是Sprite Kit的新手,我想用它來實現一個簡單的遊戲。我想知道這是否可能在雪碧套件:Sprite Kit中的混色

假設我畫兩個圈,一個在,另一個在綠色。這兩個圓圈之間有重疊區域,我希望此區域的顏色可以自動設置爲RED + Green =黃色,有點像下圖。

使用Sprite Kit可以這樣做嗎?如果可能的話,如何設置它?

任何回覆非常感謝!

enter image description here

回答

1

可以連同blending modeSKEffectNode

class GameScene:SKScene{ 

    override func didMoveToView(view: SKView) { 


     let effect = SKEffectNode() 

     //Creating shapenodes 
     let shape1 = SKShapeNode(circleOfRadius: 50) 
     shape1.fillColor = SKColor.redColor() 
     shape1.strokeColor = SKColor.clearColor() 
     shape1.zPosition = 1 
     shape1.blendMode = SKBlendMode.Add 

     let shape2 = SKShapeNode(circleOfRadius: 50) 
     shape2.fillColor = SKColor.greenColor() 
     shape2.strokeColor = SKColor.clearColor() 
     shape2.zPosition = 2 
     shape2.blendMode = SKBlendMode.Add 

     let shape3 = SKShapeNode(circleOfRadius: 50) 
     shape3.fillColor = SKColor.blueColor() 
     shape3.strokeColor = SKColor.clearColor() 
     shape3.zPosition = 3 
     shape3.blendMode = SKBlendMode.Add 


     //Positioning 
     shape1.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame)) 

     shape2.position = CGPoint(x: shape1.position.x - 25, y: shape1.position.y - 50) 

     shape3.position = CGPoint(x: shape1.position.x + 25, y: shape1.position.y - 50) 

     effect.addChild(shape1) 
     effect.addChild(shape2) 
     effect.addChild(shape3) 

     self.addChild(effect) 

    } 
} 

結果:

enter image description here

+0

這正是我想要的!謝謝! –

+0

還有一個問題。不是用純色填充圓形,如果我填充了彩色紋理(例如帶有紅色和綠色圖案的png圖片),是否有無法達到類似的效果? –

+0

@HunTerDRF是的,你可以使用SKSpriteNode並用紋理初始化它。 – Whirlwind