将SKLabelNode设置为SKShapeNode的裁剪节点

3

在网上找不到如何剪裁SKShapeNode的SKLabelNode的方法。当我着色背景时,我的目标是用同样的方法着色标签,这样它们两个就必须同时着色。但是无法想象如何使用此标签剪裁SKShapeNode。请帮助我!

1个回答

1
如果我理解你的意思,你可以将SKLabelNode设置为SKCropNode的蒙版,像这样:但是无法想象如何用这个标签裁剪SKShapeNode。
override func didMoveToView(view: SKView) {

        backgroundColor = .blackColor()

        let cropNode = SKCropNode()
        cropNode.position = CGPoint(x: frame.midX, y: frame.midY)
        cropNode.zPosition = 1

        let mask = SKLabelNode(fontNamed: "ArialMT")
        mask.text = "MASK"
        mask.fontColor = .greenColor()
        mask.fontSize = 28

        cropNode.maskNode = mask


        let nodeToMask = SKSpriteNode(color: .purpleColor(), size: CGSize(width: 200, height: 200))
        nodeToMask.position = CGPoint(x: 0, y: 0)
        nodeToMask.name = "character"
        cropNode.addChild(nodeToMask)
        //Now colorize the sprite which acts like background
        let colorize = SKAction.sequence([
                SKAction.colorizeWithColor(.orangeColor(), colorBlendFactor: 0, duration: 1),
                SKAction.colorizeWithColor(.purpleColor(), colorBlendFactor: 0, duration: 1)
        ])

        nodeToMask.runAction(SKAction.repeatActionForever(colorize), withKey: "colorizing")

        addChild(cropNode)

}

结果为:

这是结果。

mask


1
感谢回答,@Whirlwind。但是,我没有正确地表达我的答案,因为我的英语不好。很遗憾。我想要说的是相反的,我想要用SKLabelNode裁剪SKShapeNode。例如,有一个矩形,我向其中添加了一个SKLabelNode,但我希望这个形状被标签裁剪,以便背景颜色可以透过这个形状显示出来。希望我解释得清楚。 - Nurassyl Nuridin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接