在有色使用該
https://developer.apple.com/reference/spritekit/skcropnode
和
https://www.hackingwithswift.com/read/14/2/getting-up-and-running-skcropnode
「什麼部分將是可見的,透明部分中的任何內容都將被隱藏IBLE「。
我有我的第一個成功。顯然,我需要接下來的工作。
var taMain = SKTexture(imageNamed: "landscape144.jpg")
var sprite1 = SKSpriteNode()
sprite1 = SKSpriteNode(texture: taMain)
sprite1.xScale = 2
sprite1.yScale = 2
sprite1.zPosition = 1
var cropNode:SKCropNode = SKCropNode()
cropNode.xScale = 1
cropNode.yScale = 1
cropNode.position = CGPoint(x: 0, y: 0)
cropNode.zPosition = 2
cropNode.maskNode = SKSpriteNode(imageNamed: "maskimage3.png")
cropNode.maskNode?.position = CGPoint(x: 0, y: 0)
cropNode.addChild(sprite1)
self.addChild(cropNode)
和的touchesBegan
for touch: AnyObject in touches {
//uncomment 2 lines to help you get your image positioned on screen.
// it moves the whole cut image + hole
//let location = touch.locationInNode(self)
// cropNode.position = location
//Or uncomment these 2 lines to move just the mask
//let location = touch.locationInNode(cropNode)
// cropNode.maskNode?.position = location //moves just the hole
}
在你的touchesBegan可以取消對該行「cropNode.position =位置」,如果你想將圖像和孔一起移動,並想出一個好位置時它在屏幕上。或者如果你想移動洞,你可以取消註釋「cropNode.maskNode?.position = location」。
只有當您的maskimage足以覆蓋您切割的整個圖像時,移動該孔纔有效。否則,最終會丟失比預期更多的圖像。所以,爲了我的目的,我最終可能會製作出高度/寬度完全相同的圖像和maskimages。然後,根據我需要我會加載不同的maskimages。
我的圖片:
144個像素
面膜與透明孔144
景觀144由144像素
結果iphone 6模擬器 - 的Xcode 6.2
與透明窟窿較大的面膜
您需要使用SKCropNode,如果你在閱讀的評論你發佈的那個,你可以看到作者那麼 – Knight0fDragon
好的。我會嘗試基於這個ref的skcropnode:https://developer.apple.com/reference/spritekit/skcropnode – Neo42
是的,你所做的事實際上是該引用的反轉,這是.Subtract進來的地方。不記得100%,因爲我已經這樣做了一段時間,但我不認爲.Subtract混合了alpha通道,所以你可能必須做一個自定義的綠色 – Knight0fDragon