SKCropNode を使用するときは、cropNode に追加する画像で、対応するマスク ピクセルのアルファ値に従って個々のピクセルのアルファ値を調整する必要がありました。
多くの調査の後、画像ピクセルのアルファ値はマスクに適応しないという結論に達しましたが、プロジェクトを続行しただけで、特定の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
}
}
}
上記のコードは私が望む効果をもたらしますが、以下を削除すると、画像ピクセルのアルファ値はマスクに従って調整されなくなりますか?? 以下のコードは私のプロジェクトでは実際には使用していませんが、ピクセルのアルファ値を調整できる唯一の方法です。
let randomCropNode = SKCropNode()
display.addChild(randomCropNode)
誰でもこの動作の原因を特定できますか、または目的の効果を得るより良い方法があるかどうかを確認できますか?
マスク:
結果:
削除する場合:
let randomCropNode = SKCropNode()
display.addChild(randomCropNode)
結果: