解决方案我试过:
Gradually change background color in Swift
Swift : Background Color fading animation (SpriteKit)
我目前有什么(不工作):
class GameScene: SKScene, SKPhysicsContactDelegate{
var background = SKSpriteNode()
var colorizeToRed = SKAction()
override func didMoveToView(view: SKView) {
background = SKSpriteNode(color: UIColor.blueColor(), size: self.frame.size)
background.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
background.zPosition = 15
colorizeToRed = SKAction.colorizeWithColor(SKColor(red: 90, green: 0, blue: 0, alpha: 1), colorBlendFactor: 1.0, duration: 2.0)
background.runAction(colorizeToRed)
}
}
我的问题:
我没有看到背景改变颜色。我看到它改变颜色的唯一一次是我使用self.backgroundColor = UIColor().aColor
直接设置它没有动画。
问题:
如何在Spritekit中逐步(动画)更改背景颜色?
在您之前:
1)是的,我已经尝试在隐藏SKNode的情况下更改zPosition。
2)是的,我已经查看了SKAction.colorizeWithColor()
的文档。
3)是的,我几乎可以肯定我的问题的解决方案非常简单(可能是我的一些错误),但是什么?
4)是的,我愿意接受任何建议,告诉我错误是在我的代码中的其他地方,但只有在您确定错误的位置时才会这样。
5)不,我不会在此发布我的ENTIRE代码,如有必要,请询问具体部分。
提前感谢您提供的任何帮助^^!
答案 0 :(得分:3)
从它的外观来看,我想你只是忘了将背景添加到场景中。试试这个:
addChild(background)
如果这没有用,请继续阅读......
如果您只是淡入SKSpriteNode,那么您可以使用SKAction.fadeIn
淡化节点。只需将其alpha
设置为0即可启动并通过执行以下操作淡入它:< / p>
background.run(SKAction.fadeInWithDuration(2))