下面是一个计算属性,我将此属性分配给某些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
答案 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)
希望这有帮助