gpt4 book ai didi

sprite-kit - SKSpriteNode只收取部分贴图颜色

转载 作者:行者123 更新时间:2023-12-02 03:08:05 25 4
gpt4 key购买 nike

是否可以将颜色应用于 SKSpriteNode 纹理,但仅与它的特定颜色混合?

例如,假设我有一个立方体(不是 3d 而是一个看起来像立方体的 2d 纹理)并且我有顶部白色、底部左侧蓝色和底部右侧红色。我可以应用颜色和颜色混合因子来仅更改我选择的颜色吗?例如白色、红色或蓝色。

请注意,为简单起见,在此示例中我只使用了一个立方体。在真实的场景中,为了解决问题,节点不会像立方体面那样容易地“切碎”。纹理可能有一部分保持透明或始终为白色,但它上面总会有至少一种不应更改的其他颜色(将其视为部分背景、部分游戏对象的纹理)

最佳答案

要实现您想要的目标,您有 2 个选择:

1) 学习如何使用 SKShader:很遗憾,我无法帮助您,因为我有一个人可以为我处理这些事情,所以我不需要广泛学习着色器。基本上,您所做的是在 GPU 级别,以您希望允许更改的某些像素为目标。

2) 对于新手用户来说更简单的方法是使用 2 个 SKSpriteNode。你用你想要的所有纯色创建你的第一个 Sprite ,然后你为你想要改变的所有像素创建一个灰度叠加图像。然后,您可以应用 colorBlendFactor 来实现您想要的效果。

基本上:

let sprite = SKSpriteNode(imageNamed:"fullcolor")
let overlay = SKSpriteNode(imageNamed:"overlay")
overlay.color = .Red
overlay.zPosition = 1
overlay.colorBlendFactor = 1.0
sprite.addChild(overlay)

关于sprite-kit - SKSpriteNode只收取部分贴图颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41452098/

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