SKSpriteNode仅收取部分纹理颜色

时间:2017-01-03 20:48:04

标签: sprite-kit skspritenode

是否可以将颜色应用于SKSpriteNode纹理,但只能与其某种颜色混合?

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

请注意,在此示例中,我仅使用了一个简单的方块。在一个真实的场景中,节点不会那么容易被切断'像一个立方体面可能出于解决方法的目的。纹理可以使其中的一部分保持透明或始终为白色,但总会有至少一种其他颜色不应该改变(将其视为部分背景的纹理,部分是游戏对象)

1 个答案:

答案 0 :(得分:1)

要做你想要达到的目标,你有两个选择:

1)了解如何使用yourNamespace::subLibrary::moreLevels::justBecause::Thing:不幸的是,我无法帮助你,因为我有一个人为我处理这些东西,所以我没有必要广泛地学习着色器。基本上你正在做的是在GPU级别,针对你想要允许改变的某些像素。

2)对于新手用户来说,更简单的方法是使用2个SKSpriteNodes。您可以使用所需的所有纯色创建第一个精灵,然后为要更改的所有像素创建灰度叠加图像。然后,您可以应用SKShader来达到您想要的效果。

基本上:

colorBlendFactor