【问题标题】:Making SKLabelNode as a crop node of SKShapeNode使 SKLabelNode 成为 SKShapeNode 的裁剪节点
【发布时间】:2016-03-14 11:30:26
【问题描述】:

在网页上找不到,如何让 SKLabelNode 裁剪 SKShapeNode。当我给背景上色时,我的目标是用同样的方法给标签上色,所以它们都必须同时上色。但是无法想象如何用这个标签裁剪 SKShapeNode。请帮帮我!

【问题讨论】:

    标签: swift sprite-kit skshapenode sklabelnode skcropnode


    【解决方案1】:

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

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

    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)
    
    }
    

    结果:

    【讨论】:

    • 感谢@Whirlwind 的回答。但是,由于我的英语,我给出的答案不正确),不幸的是。我想说反之亦然,想用 SKLabelNode 裁剪 SKShapeNode。例如,有一个矩形,我向它添加了一个 SKLabelNode,但我想用标签裁剪这个形状,所以背景颜色必须通过这个形状显示。希望我解释清楚)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2016-04-27
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多