如何更改SKSpriteNode饱和度? - 斯威夫特

时间:2016-09-30 13:15:14

标签: swift 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 个答案:

答案 0 :(得分:2)

您可以将背景添加为SKEffectNode的子节点,然后设置创建颜色控件过滤器作为效果节点过滤器。将kCIInputSaturationKey设置为小于1的值将导致背景图像去饱和,大于1将导致背景变得更饱和。

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