如何改变一个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)

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

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

最新更新