gpt4 book ai didi

ios - 使用 SKLabel 文本裁剪 SKTexture

转载 作者:搜寻专家 更新时间:2023-10-31 08:30:38 26 4
gpt4 key购买 nike

为了在 SpriteKit 中创建一个按钮,我创建了一个带有 SKShapeNode 的圆角矩形,然后在其顶部放置了一个 SKLabel。

看起来像这样: enter image description here

我想让标签下的背景随着它下面的内容而改变。所以在图片中,T、E 和 A 的一半是紫色的。

有什么方法可以中途给字体上色吗?或者以某种方式裁剪带有放置在其上的 SKLabel 的白色矩形纹理。这样就没有标签,而是从纹理中切出标签。基本上,我希望字体颜色是它后面的颜色。

我必须在不导入图像和以某种方式通过代码的情况下执行此操作。

最佳答案

Knight0fDragon的评论很有道理,这个建议不错。在没有 textureFromNode 的情况下,还有另一种解决方案。您可以使用背景和标签准备您的 cropNode,然后使用按钮和您的 cropNode 制作另一个背景克隆:

import SpriteKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
let background = SKSpriteNode.init(imageNamed: "background.png")
background.zPosition = 1
let background2 = background.copy() as! SKSpriteNode
//label
let titleLabel = SKLabelNode(fontNamed: "AvenirNext-Bold")
titleLabel.fontSize = 150
titleLabel.fontColor = SKColor.black
titleLabel.text = "RATE"
titleLabel.horizontalAlignmentMode = .center
titleLabel.zPosition = 5
titleLabel.blendMode = .subtract
//cropNode
let cropNode = SKCropNode()
cropNode.addChild(background)
cropNode.maskNode = titleLabel
self.addChild(cropNode)
cropNode.zPosition = 5
//button
let button = SKShapeNode(rect: CGRect(x: -300, y: -50, width: 600, height: 200), cornerRadius: 100)
button.zPosition = 4
button.fillColor = SKColor.white
self.addChild(background2)
self.addChild(button)
}
}

使用的图片: enter image description here

输出:

enter image description here

另一个要测试的背景:

enter image description here

输出 2:

enter image description here

关于ios - 使用 SKLabel 文本裁剪 SKTexture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43266458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com