使用 SKCropNode 时,我希望添加到cropNode 的图像根据相应的蒙版像素 alpha 值调整每个单独的像素 alpha 值。
经过大量研究,我得出的结论是图像像素的 alpha 值不会适应蒙版,但是在继续我的项目后,我注意到一个特定的cropNode 图像的像素实际上正在褪色到蒙版像素阿尔法值???太棒了!但是,在复制了这个之后,我不知道它为什么会这样做?
import SpriteKit
var textureArray: [SKTexture] = []
var display: SKSpriteNode!
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
anchorPoint = CGPointMake(0.5, 0.5)
backgroundColor = UIColor.greenColor()
fetchTexures()
display = SKSpriteNode()
let image = SKSpriteNode(texture: textureArray[0])
display.addChild(image)
let randomCropNode = SKCropNode()
display.addChild(randomCropNode)
let cropNode = SKCropNode()
cropNode.maskNode = display
let fill = SKSpriteNode(color: UIColor.whiteColor(), size: frame.size)
cropNode.addChild(fill)
cropNode.zPosition = 10
addChild(cropNode)
}
func fetchTexures() {
var x: Int = 0
while x < 1 {
let texture: SKTexture = SKTextureAtlas(named: "texture").textureNamed("\(x)")
textureArray.append(texture)
x += 1
}
}
}
上面的代码给了我想要的效果,但是如果你删除下面的,图像像素的 alpha 值不再根据掩码调整?下面的代码实际上并没有在我的项目中使用,但这是我可以调整像素 alpha 值的唯一方法。
let randomCropNode = SKCropNode()
display.addChild(randomCropNode)
任何人都可以看到是什么导致了这种行为,或者是否有更好的方法来获得我想要的效果?
面具:
结果:
如果删除:
let randomCropNode = SKCropNode()
display.addChild(randomCropNode)
结果: