我试图将SKSPriteNode的颜色从绿色更改为白色。它的纹理原本是绿色的。但是,在某些情况下,我希望它完全是白色的。我试过这样做:
func loadBackButton() {
backButton = SKSpriteNode(imageNamed: "BackButton")
backButton.color = .white
backButton.size = CGSize(width: self.size.width * CGFloat(0.125), height: self.size.width * CGFloat(0.125))
backButton.position = CGPoint(x: self.size.width * CGFloat(-0.426), y: self.size.height * CGFloat(0.449))
self.addChild(backButton)
}
这没有改变任何事情。所以我做了一些研究并尝试这样做:
func loadBackButton() {
backButton = SKSpriteNode(imageNamed: "BackButton")
backButton.colorBlendFactor = 1
backButton.color = .white
backButton.size = CGSize(width: self.size.width * CGFloat(0.125), height: self.size.width * CGFloat(0.125))
backButton.position = CGPoint(x: self.size.width * CGFloat(-0.426), y: self.size.height * CGFloat(0.449))
self.addChild(backButton)
}
然而,这也没有改变任何事情。有谁知道它为什么不改变什么?
答案 0 :(得分:1)
如果需要使用SKCropNode和白色精灵节点,您可以随时添加叠加层。
基本上:
let croppedNode = SKCropNode()
croppedNode.maskNode = sprite.copy() as? SKNode
sprite.addChild(croppedNode)
let whiteNode = SKSpriteNode(color:.white,size:sprite.size)
croppedNode.addChild(whiteNode)
croppedNode.zPosition = 1