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

Ios 使用xcode/swift,如何将黑色图像的SKSpriteNode颜色更改为白色?,ios,xcode,swift,sprite-kit,skspritenode,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

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

我试着用这个:

sprite.color = .whiteColor()
sprite.colorBlendFactor = 1
它什么也不做。我也尝试过类似的方法:

let colorize = SKAction.colorizeWithColor(.whiteColor(), colorBlendFactor: 1, duration: 5)
sprite.runAction(colorize)
但这只会使雪碧褪色为白色,然后又变回黑色


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

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

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

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

sprite.color = .blackColor()
sprite.colorBlendFactor = 1.0
最后,在
触摸中,通过将
colorBlendFactor
从1更改为0,开始将精灵从黑色重新着色为白色:

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

有没有一种方法可以给出你想要的
SpriteNode
颜色?我真的很难理解为什么有时更改
sprite
的颜色会有效,但其他时候不会。它可能与颜色选择有关?我希望你能回到我身边me@Sharukh您可以使用
sprite.color=.redColor()
将精灵的颜色设置为红色,或使用
sprite.color=.blueColor()
将精灵的颜色设置为蓝色。但是,要查看颜色更改,还必须将“颜色混合因子”设置为非零值,例如
sprite.colorBlendFactor=1.0
。我已经尝试过了,但它不起作用。我通常会说
sprite.color=UIColor.redColor()
,将
colorCDFactor
设置为
1.0
,它不会改变color@Sharukh您是否设置了sprite.colorBlendFactor=1.0
。如果未包含精灵的名称,则混合因子将应用于场景。而且,颜色只影响非黑色像素。是的,我包括了它,它不会改变颜色。什么是非黑色像素?
let recolor = SKAction.colorizeWithColorBlendFactor(0, duration: 2)
sprite.runAction(recolor)