2016-09-30 48 views
0

我開發一個遊戲,我想有背景改變其飽和度超過一定的時間,但不知道該怎麼辦呢......因此,這裏是我的代碼:如何更改SKSpriteNode飽和度? - 斯威夫特

 var bg = SKSpriteNode() 
     bg.size = frame.size 
     bg.position = CGPoint(x: frame.midX, y: frame.midY) 
     bg.zPosition = -1000 
     bg.texture = SKTexture(imageNamed: "background") 
     bg.alpha = 0.5 

     addChild(bg) 

非常感謝 !

回答

1

您可以將背景添加爲SKEffectNode的子節點,然後將創建顏色控制過濾器設置爲效果節點過濾器。將kCIInputSaturationKey設置爲小於1的值將導致背景圖像去飽和,大於1會導致背景變得更加飽和。

var effectNode = SKEffectNode() 
effectNode.addChild(bg) 
effectNode.filter = CIFilter(name: "CIColorControls") 
effectNode.filter?.setValue(0.1, forKey: kCIInputSaturationKey)