【发布时间】:2017-05-07 15:36:00
【问题描述】:
例如,我创建SKShapeNode 并为其创建子项(例如,一个十字及其两条相交的线)。十字是父项,相交的线是子项。你怎么能改变所有父母的孩子的阿尔法值?
目前只是使用:
parent.alpha = 0.5
不会更改其子项的 alpha 值。
如果有人能够创建一个可以解决此问题或使用任何其他方式的着色器,请回复。 这个帖子是对我之前帖子的回应:(Swift: Make translucent overlapping lines of the same color not change color when intersecting) 如果有人能够解决此问题,我正在尝试使半透明线相交的较暗点消失。
下面是一些代码作为示例:
let nodeParent = SKShapeNode()
let nodeOne = SKShapeNode(circleOfRadius: 5)
let nodeTwo = SKShapeNode(circleOfRadius: 5)
//Set the color of the circles, I'm not sure if this is the right way
nodeOne.fillColor = UIColor.init(red: 0.0, green: 1.0, blue: 0.0, alpha: 1.0)
nodeTwo.fillColor = UIColor.init(red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0)
nodeParent.addChild(nodeOne)
nodeParent.addChild(nodeTwo)
addChild(nodeParent)
nodeParent.alpha = 0.5
谢谢。
【问题讨论】:
-
这应该可以。一个有子节点,有子节点,有子节点的父节点……父节点的透明度平等地影响它的所有子节点。如果所有子项的不透明度都为 1.0,并且父项更改为 0.5,那么所有子项将变为 0.5。如果孩子从 0.5 开始生命,而父母在 1.0 开始生活,那么将父母更改为 0.5 会使孩子的不透明度减半为 0.25
-
我将所有子级添加到父级,其 alpha 为 1.0,并且由于某种原因更改父级的 alpha 不会影响它。这就是我想要弄清楚的。
-
啊,那肯定是父母和孩子的关系出了问题。你能显示更多代码吗?这真的应该工作。
-
我编辑了我的帖子。
-
尝试将 nodeParent 设为 SKNode() 而不是 SKShapeNode()。应该没什么区别,但值得一试。
标签: swift sprite-kit alpha children skshapenode