1
votes

I have an SKCropNode that is working fine except for one thing - all of the greyscale values in the mask image that are not black or white are getting set to solid white.enter image description here

This means that all greyscale alpha values are not rendering with transparency, but are just being set to be fully opaque.

Here is my code:

    let foregroundTexture = SKTexture(image: UIImage(contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("P01_foreground.jpg"))!)
    var foreground = SKSpriteNode(texture: foregroundTexture)

    let maskTexture = SKTexture(image: UIImage(contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("P01_mask.png"))!)
    var mask = SKSpriteNode(texture: maskTexture)

    var cropNode = SKCropNode()
    cropNode.addChild(foreground)
    cropNode.maskNode = mask
    cropNode.position = CGPoint(x: device.x/2, y: device.y/2)
    cropNode.zPosition = 2.0
    self.addChild(cropNode)

Does anyone know why the greyscale areas are being set to white or how I can achieve the desired result? Thanks in advance!

1

1 Answers

1
votes

Unfortunately it looks like you can't. SKCropNode currently only has one property, the maskNode itself. There are no additional settings available to do what you want.