我创建了一个带有黑色图像的SKSpriteNode的游戏,当用户触摸屏幕时,我希望SKSpriteNode更改为白色。
我试过用这个:
sprite.color = .whiteColor()
sprite.colorBlendFactor = 1
它什么也没做。我也尝试过这样的事情:
let colorize = SKAction.colorizeWithColor(.whiteColor(), colorBlendFactor: 1, duration: 5)
sprite.runAction(colorize)
但这只会使精灵淡化为白色,然后变回黑色。
当用户触摸屏幕时,如何让黑色精灵图像变白并保持白色?
答案 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)