我开发了一款游戏,我想让背景在一定时间内改变其饱和度,但不知道该怎么做...所以这是我的代码:
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)
非常感谢!
答案 0 :(得分:2)
您可以将背景添加为SKEffectNode
的子节点,然后设置创建颜色控件过滤器作为效果节点过滤器。将kCIInputSaturationKey
设置为小于1的值将导致背景图像去饱和,大于1将导致背景变得更饱和。
var effectNode = SKEffectNode()
effectNode.addChild(bg)
effectNode.filter = CIFilter(name: "CIColorControls")
effectNode.filter?.setValue(0.1, forKey: kCIInputSaturationKey)