SpriteKit SKColor淡入/淡出

时间:2015-08-07 15:09:55

标签: swift sprite-kit

下面是一个计算属性,我将此属性分配给某些SKScene的backgroundcolor。现在,当小时改变,这意味着backgroundColor改变了,我该怎么做才能使这些颜色改变为淡入或淡出效果?现在背景颜色会立即改变但是太直接了。可能应该使用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()}
            }

在这里我将backgroundColor分配给一个引用。

   backgroundColor = GameViewController.backgroundColor 

1 个答案:

答案 0 :(得分:1)

是的,使用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)

希望这有帮助