Ios 如何在Spritekit中逐渐(设置动画)更改背景色?

Ios 如何在Spritekit中逐渐(设置动画)更改背景色?,ios,swift,animation,sprite-kit,background-color,Ios,Swift,Animation,Sprite Kit,Background Color,我尝试过的解决方案: class GameScene: SKScene, SKPhysicsContactDelegate{ var background = SKSpriteNode() var colorizeToRed = SKAction() override func didMoveToView(view: SKView) { background = SKSpriteNode(color: UIColor.blueColor(), s

我尝试过的解决方案:

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)

    }

}


我目前拥有的(未工作):

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)

    }

}

我的问题:

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
直接设置它,而不使用动画

编辑:事实上,我甚至没有看到蓝色的背景。。。我的SKSpriteNode有点问题,但是什么


问题:

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)

    }

}
如何在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)

    }

}
1) 是的,我已经尝试过改变ZNODE的位置,以防SKNode被隐藏

2) 是的,我已经检查了文档中的
SKAction.colorizeWithColor()

3) 是的,我几乎可以肯定我的问题的解决方案非常简单(可能是我的一些错误),但是什么呢

4) 是的,我愿意接受任何建议,告诉我错误在我的代码中的其他地方,但前提是你要确定错误可能在哪里

5) 不,我不会在这里发布我的全部代码,如果需要,请询问具体部分



提前感谢您提供的任何帮助^^ ^

从外观上看,我想你忘了给场景添加背景。试试这个:

addChild(background)
如果没有帮助,请继续阅读

如果您只是淡入一个SKSpriteNode,那么可以使用
SKAction.fadeIn
淡入节点。只需将其
alpha
设置为0即可启动并通过如下操作淡入:

background.run(SKAction.fadeInWithDuration(2))

我忘了那个小孩。。。多谢各位。我现在要去睡觉了-__;-@Coder1000嗨,老兄,所有的事情都发生了,重要的是要解决。下次尝试用断点调试它,并将PO转到控制台调试时,它多次救了我的命。