使用xcode / swift,如何将我的SKSpriteNode(黑色图像)的颜色更改为白色?

时间:2015-07-18 20:55:05

标签: ios xcode swift sprite-kit skspritenode

我创建了一个带有黑色图像的SKSpriteNode的游戏,当用户触摸屏幕时,我希望SKSpriteNode更改为白色。

我试过用这个:

sprite.color = .whiteColor()
sprite.colorBlendFactor = 1

它什么也没做。我也尝试过这样的事情:

let colorize = SKAction.colorizeWithColor(.whiteColor(), colorBlendFactor: 1, duration: 5)
sprite.runAction(colorize)

但这只会使精灵淡化为白色,然后变回黑色。

当用户触摸屏幕时,如何让黑色精灵图像变白并保持白色?

1 个答案:

答案 0 :(得分:2)

使用黑色纹理更改精灵的color属性将不起作用。此外,无论精灵的原始颜色如何,将精灵的color属性设置为.whiteColor()都不起作用。也就是说,至少有一种方法可以将精灵的颜色从黑色转换为白色。

首先,从带有白色图像的精灵开始(您可以在图像编辑应用程序中将黑色图像的颜色更改为白色):

let sprite = SKSpriteNode(imageNamed: "whitebird")

接下来,将精灵的color属性设置为黑色,将colorBlendFactor设置为1

sprite.color = .blackColor()
sprite.colorBlendFactor = 1.0

最后,在touchesBegan中,通过将colorBlendFactor从1更改为0,将精灵从黑色重新着色为白色:

let recolor = SKAction.colorizeWithColorBlendFactor(0, duration: 2)
sprite.runAction(recolor)