Swift SpriteKit SKColor淡入/淡出

Swift SpriteKit SKColor淡入/淡出,swift,sprite-kit,Swift,Sprite Kit,下面是一个计算属性,我已将该属性指定给某个场景的背景色。现在,当时间改变了,这意味着背景颜色改变了,我该怎么做才能使这些颜色随着淡入或淡出效果而改变?现在背景颜色会立即改变,但这太直截了当了。是否应该使用SKAction?但是我找不到办法 static var backgroundColor:SKColor { if GameViewController.hour > 6 && GameViewController.hour < 1

下面是一个计算属性,我已将该属性指定给某个场景的背景色。现在,当时间改变了,这意味着背景颜色改变了,我该怎么做才能使这些颜色随着淡入或淡出效果而改变?现在背景颜色会立即改变,但这太直截了当了。是否应该使用SKAction?但是我找不到办法

 static var backgroundColor:SKColor {
                if GameViewController.hour > 6  && GameViewController.hour < 18 {
                    return SKColor.whiteColor()
                }
                if (GameViewController.hour > 16 && GameViewController.hour < 20) || GameViewController.hour > 5 && GameViewController.hour < 8 {
                    return SKColor.grayColor()
                } else { return SKColor.blackColor()}
            }

可以,使用SKAction更改颜色。您需要
colorizeWithColor:blendFactor:duration:
。指定所需的颜色、混合因子(使用1.0完全更改颜色)以及所需的持续时间。制作一个用于背景的
SKSpriteNode
可能更容易。例如:

var background: SKSpriteNode = SKSpriteNode(color: color, size: self.frame.size)
var colorize: SKAction = SKAction.colorizeWithColor(color, colorBlendFactor: 1.0, duration: someDurationInSeconds)
希望这有帮助

var background: SKSpriteNode = SKSpriteNode(color: color, size: self.frame.size)
var colorize: SKAction = SKAction.colorizeWithColor(color, colorBlendFactor: 1.0, duration: someDurationInSeconds)