xXxxX Asked:2020-04-28 20:49:00 +0000 UTC2020-04-28 20:49:00 +0000 UTC 2020-04-28 20:49:00 +0000 UTC SKCropNode 的掩码 772 我有一个问题,是否可以反转掩码SKCropNode? 那些。我有一个黑色的圆形纹理,周围是透明的,这将是一个蒙版SKCropNode,我需要切掉所有东西,不是在圆圈外,而是在圆圈内。那些。透明的 - 显示,不透明的 - 隐藏。 ios 1 个回答 Voted Best Answer Volodymyr Shevchyk 2020-05-04T20:45:10Z2020-05-04T20:45:10Z 将显示一个内部有孔的区域(在本例中,圆圈是遮罩)。我把这个区域放在相对于屏幕的最底部,改变它的 zPosition(我输入任何负值,但可能需要选择它以使其不会太低 - 视情况而定),然后我放上这个区域需要使用蒙版剪掉 - 这个区域更高,然后我在 zPosition 更大的这个区域上应用一个带有需要剪掉的图形的蒙版。 override func didMove(to view: SKView) { self.backgroundColor = SKColor.red let transparentScreen = SKSpriteNode(color: SKColor.black, size: size) transparentScreen.position = view.center transparentScreen.zPosition = 10 transparentScreen.alpha = 0.6 let mask = SKSpriteNode(color: SKColor.black, size: size) //Color dosn't matter mask.position = view.center mask.zPosition = 10 mask.alpha = 1.0 let circle = SKShapeNode(circleOfRadius: 50.0) circle.fillColor = SKColor.black //Color doesn't matter circle.lineWidth = 0.0 circle.alpha = 1.0 circle.blendMode = SKBlendMode.subtract mask.addChild(circle) let crop = SKCropNode() crop.maskNode = mask crop.addChild(transparentScreen) addChild(crop) } 结果:
将显示一个内部有孔的区域(在本例中,圆圈是遮罩)。我把这个区域放在相对于屏幕的最底部,改变它的 zPosition(我输入任何负值,但可能需要选择它以使其不会太低 - 视情况而定),然后我放上这个区域需要使用蒙版剪掉 - 这个区域更高,然后我在 zPosition 更大的这个区域上应用一个带有需要剪掉的图形的蒙版。
结果: