使SKLabelNode成为SKShapeNode的裁剪节点 [英] Making SKLabelNode as a crop node of SKShapeNode

查看:182
本文介绍了使SKLabelNode成为SKShapeNode的裁剪节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在网络上找不到如何使SKLabelNode裁剪SKShapeNode的信息.当我给背景上色时,我的目标是也用相同的方法给标签上色,因此它们都必须同时上色.但是无法想象如何使用此标签裁剪SKShapeNode.请帮帮我!

Can't find in web, how to make SKLabelNode cropping SKShapeNode. When i colorize the background, my goal is colorize the label too with the same method, so both of them have to colorize simultaneously. But can't imagine how to crop SKShapeNode with this label. Help me please!

推荐答案

但无法想象如何使用此标签裁剪SKShapeNode.

But can't imagine how to crop SKShapeNode with this label.

如果我对您的理解正确,则可以将SKLabelNode设置为SKCropNode的掩码,如下所示:

If I understand you correctly, you can set SKLabelNode as a mask of a SKCropNode, like this:

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)

}

结果:

这篇关于使SKLabelNode成为SKShapeNode的裁剪节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆