首页 文章

如何逐步(动画)更改Spritekit中的背景颜色?

提问于
浏览
1

SOLUTIONS I TRIED:

Gradually change background color in Swift

Swift : Background Color fading animation (SpriteKit)


WHAT I CURRENTLY HAVE (not working):

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)

    }

}

MY PROBLEM:

我没有看到背景改变颜色 . 我看到它改变颜色的唯一一次是我使用 self.backgroundColor = UIColor().aColor 直接设置它没有动画 .

编辑:事实上,我也不会看到蓝色背景......我的SKSpriteNode有问题,但是什么?


QUESTION:

如何逐步(动画)更改Spritekit中的背景颜色?


BEFORE YOU ASK:

1)是的,我已经尝试在隐藏SKNode的情况下更改zPosition .

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

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

4)是的,我愿意接受任何建议,告诉我错误是在我的代码中的其他地方,但只有在您确定错误的位置时才会这样 .

5)不,我不会在这里发布我的整个代码,如有必要,请询问具体部分 .


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

1 回答

  • 3

    从它的外观来看,我认为你只是忘了将背景添加到场景中 . 试试这个:

    addChild(background)
    

    如果这没有帮助,请继续阅读......

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

    background.run(SKAction.fadeInWithDuration(2))
    

相关问题