Lors de l'utilisation de SKCropNode, je souhaitais que l'image que j'ajoutais au cropNode ajuste chaque valeur alpha de pixel en fonction de la valeur alpha de pixel de masque correspondante. Après de nombreuses recherches, je suis arrivé à la conclusion que les valeurs d'alpha des pixels de l'image ne s'ajusteraient pas au masque, mais après avoir simplement poursuivi mon projet, j'ai remarqué que les pixels d'une image cropNode étaient en train de s'estomper. à la valeur alpha du pixel du masque ??? Ce qui était génial! Cependant, après avoir reproduit cela, je ne sais pas pourquoi il le fait?Comportement étrange de SKCropNode
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
}
}
}
Le code ci-dessus me donne mon effet désiré, si vous supprimez le dessous, les valeurs alpha de pixels d'image plus régler conformément au masque ?? Le code ci-dessous n'est pas réellement utilisé dans mon projet, mais c'est la seule façon de régler la valeur alpha du pixel.
let randomCropNode = SKCropNode()
display.addChild(randomCropNode)
Quelqu'un peut-il voir ce qui est à l'origine de ce comportement, ou s'il y a une meilleure façon d'obtenir mon effet désiré?
Masque:
Résultat:
Si remove:
let randomCropNode = SKCropNode()
display.addChild(randomCropNode)
Résultat:
Le comportement que je reçois est-il ajuste en fait à la valeur alpha de pixel, si ma valeur pixel de masque alpha est de 0,25, mon pixel d'image valeur alpha ira à 0,25, alors qu'auparavant, si la valeur du masque était 0,25, la valeur de l'image serait 1,0.Quand j'ajoute le randomCropNode, j'obtiens l'effet désiré, mais d'après ce que j'ai lu sur Internet, les pixels de l'image ne doivent pas s'ajuster au masque. Désolé, cela n'a probablement pas de sens. Fondamentalement je veux que les pixels s'ajustent au masque, mais je ne suis pas sûr pourquoi il le fait dans cette instance seulement. – Jarron
Comme je l'ai dit, cela pourrait être juste de rendre votre masque comme une texture normale au lieu d'être un masque. – Knight0fDragon
Désolé, je comprends ce que vous dites, mais non, je vais joindre l'image sous peu. L'image est de 4 nuances de noir et puis j'ajoute un remplissage blanc et il se tourne vers 4 nuances de blanc. – Jarron