使用与纹理不同颜色的精灵颜色

时间:2017-07-10 14:36:17

标签: swift sprite-kit

我试图将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)
}

然而,这也没有改变任何事情。有谁知道它为什么不改变什么?

1 个答案:

答案 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