gpt4 book ai didi

ios - SKCropNode 使蒙版图像完全消失

转载 作者:行者123 更新时间:2023-11-29 10:35:27 26 4
gpt4 key购买 nike

我有一个我想部分 mask 的图像 (wallSprite),一个用作 mask 的图像 (wallMaskBox),以及一个容纳两者的节点 (wallCropNode)。当我简单地将两个图像添加为 wallCropNode 的子节点时,两个图像都正确显示:

var wallSprite = SKSpriteNode(imageNamed: "wall.png")

var wallCropNode = SKCropNode()

var wallMaskBox = SKSpriteNode(imageNamed: "blacksquaretiny.png")
wallMaskBox.zPosition = 100

wallCropNode.addChild(wallSprite)
wallCropNode.addChild(wallMaskBox)
gameplayContainerNode.addChild(wallCropNode)

但是当我将蒙版图像设置为裁剪节点的 maskNode 属性时:

var wallSprite = SKSpriteNode(imageNamed: "wall.png")

var wallCropNode = SKCropNode()

var wallMaskBox = SKSpriteNode(imageNamed: "blacksquaretiny.png")
wallMaskBox.zPosition = 100

wallCropNode.addChild(wallSprite)
wallCropNode.maskNode = wallMaskBox
gameplayContainerNode.addChild(wallCropNode)

wallSprite 图像完全消失,而不是被部分裁剪。有什么想法吗?

最佳答案

问题是您的黑色方形图像完全不透明。它的一些(或全部)像素应该是透明的(即 alpha = 0)。与 mask 节点的透明像素对应的像素将在裁剪节点中被 mask (即不渲染)。为了证明这一点,我使用您的代码创建了以下代码。

这是原图:

enter image description here

这是我用于 maskNode 的 mask 图像。请注意,白色区域是透明的(即 alpha = 0)。从 Apple 的文档中,

When rendering its children, each pixel is verified against the corresponding pixel in the mask. If the pixel in the mask has an alpha value of less than 0.05, the image pixel is masked out. Any pixel not rendered by the mask node is automatically masked out.

enter image description here

这是裁剪后的节点。我从 iPhone 6 模拟器截取了场景。

enter image description here

关于ios - SKCropNode 使蒙版图像完全消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27429134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com