我创建了一个带有黑色图像的 SKSpriteNode 的游戏,当用户触摸屏幕时,我希望 SKSpriteNode 更改为白色。
我尝试过使用这个:
sprite.color = .whiteColor()
sprite.colorBlendFactor = 1
它什么也没做。我也尝试过类似的方法:
let colorize = SKAction.colorizeWithColor(.whiteColor(), colorBlendFactor: 1, duration: 5)
sprite.runAction(colorize)
但这只会使 Sprite 褪色为白色,然后又变回黑色。
当用户触摸屏幕时,如何使黑色 Sprite 图像变白并保持白色?
最佳答案
更改具有黑色纹理的 Sprite 的 color
属性不会产生任何效果。此外,无论 Sprite 的原始颜色如何,将 Sprite 的 color
属性设置为 .whiteColor()
都不会产生任何效果。也就是说,至少有一种方法可以将 Sprite 的颜色从黑色转换为白色。
首先,从带有白色图像的 Sprite 开始(您可以在图像编辑应用程序中将黑色图像的颜色更改为白色):
let sprite = SKSpriteNode(imageNamed: "whitebird")
接下来,将 Sprite 的 color
属性设置为黑色,并将 colorBlendFactor
设置为 1
sprite.color = .blackColor()
sprite.colorBlendFactor = 1.0
最后,在 touchesBegan
中,通过将 colorBlendFactor
从 1 更改为 0,将 Sprite 从黑色重新着色为白色:
let recolor = SKAction.colorizeWithColorBlendFactor(0, duration: 2)
sprite.runAction(recolor)
关于ios - 使用 xcode/swift 如何将黑色图像的 SKSpriteNode 的颜色更改为白色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495503/