向SKSpriteNode添加白色边框

时间:2018-03-06 16:52:11

标签: sprite-kit

我试图为精灵添加临时白色边框。为了实现这一点,我构建了另一个具有相同纹理但略大于第一个的精灵。然后我将其颜色设置为白色并在其父级后面绘制这个新的精灵,将其淡出并最终将其删除。这是我的代码:

func blink() {
     if let currentTexture = self.texture {
        let biggerSprite = SKSpriteNode(texture: currentTexture)
        biggerSprite.colorBlendFactor = 1.0
        biggerSprite.color = SKColor.white
        biggerSprite.xScale *= 1.3
        biggerSprite.yScale *= 1.3
        biggerSprite.position = CGPoint.zero
        biggerSprite.name = "aura"
        biggerSprite.zPosition = zPositions.background
        addChild(biggerSprite)
        let fadeOut = SKAction.fadeOut(withDuration: 3)
        let remove = SKAction.removeFromParent()
        biggerSprite.run(SKAction.sequence([fadeOut, remove]))
    }
}

它可以工作,我可以看到边界消失但问题是:"更大的精灵"没有像我想要的那样用白色着色。我猜测设置颜色意味着与现有纹理的颜色相乘。如何用纯白色填充我的" background" / border sprite?

1 个答案:

答案 0 :(得分:2)

将精灵白色着色与从中去除颜色相同。你不能采用多色精灵,并将其着色为白色。您必须将背景图像设置为白色或浅色。

如果你有一个精灵纹理并且你应用了一个红色并且它的colorBlendFactor为1,那么现在图像将变为阴影红色,原始图像的较暗部分只是较暗的红色阴影。现在将白色应用于此图像会将其重置为原始颜色状态。

enter image description here

enter image description here