首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKCropNode使蒙版图像完全消失

SKCropNode使蒙版图像完全消失
EN

Stack Overflow用户
提问于 2014-12-12 01:44:40
回答 1查看 423关注 0票数 1

我有一个想要部分遮罩的图像(wallSprite),一个用作遮罩的图像(wallMaskBox),以及一个保存这两者的节点(wallCropNode)。当我简单地将这两个图像添加为wallCropNode的子项时,两个图像都可以正确显示:

代码语言:javascript
复制
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属性时:

代码语言:javascript
复制
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图像将完全消失,而不是被部分裁剪。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-12-13 04:52:29

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

原图如下:

这是我在maskNode中使用的蒙版图像。请注意,白色区域是透明的(即alpha = 0)。从苹果公司的文档来看,

渲染其子对象时,将根据遮罩中的相应像素验证每个像素。如果遮罩中的像素的alpha值小于0.05,则图像像素将被遮罩。任何未由遮罩节点渲染的像素都会自动遮罩。

这是被裁剪的节点。我从iPhone 6模拟器上截取了这个场景的屏幕截图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27429134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档