在我的基于 2D 瓷砖的游戏中,玩家可以绘制瓷砖来改变那里的颜色。简单的方法(以及我已经做过的)是tint
使用SpriteBatch.Draw
.
这看起来不错,这是一个示例:
但是说,我想把木头漆成白色。如果您曾经弄乱过色调,您就会知道使用 tint 参数是不可能的。Color.White
会将精灵着色为默认颜色,而不是白色。这不是一个大问题,但我想有些用户可能想要它。
我的问题是,有没有一种方法可以根据色相/饱和度而不是色调为精灵着色。类似于 GIMP 中的“着色”功能。
一个明显的方法是在 GIMP 中使用这个函数,然后只导出每种颜色的精灵。问题在于,这对我所有的精灵都需要很长时间才能完成,而且每个精灵都有多种变化,这意味着你可以为一种块类型总共拥有 100 多个组合。
这可能吗?我想着色器可能会完成工作。