MonoGame / XNA中具有不透明度的颜色精灵色调

在MonoGame中,我使用SpriteBatch绘制精灵。 我想要创建一个半透明的覆盖,用给定的颜色“精制”精灵。 SpriteBatch.Draw接受允许指定色调的Color参数,但alpha通道似乎使整个精灵透明(不仅仅是色调)。

为了解决这个问题,我用另一个白色,半透明的雪碧覆盖了我的精灵。 它按预期工作,但我不确定这是否是正确的(也是最优化的)方法。

你能建议更好/更快的技术?

不要在SpriteBatch.Draw(...Color)使用alpha的SpriteBatch.Draw(...Color) 。 你的精灵的透明部分将保持这种方式,他们的不透明部分将被着色。

“Color.Green色彩太浓,我希望它是30%不透明的Color.Green”。

我认为你的意思是饱和度 ,而不是透明度。 干得好:

 Color desaturatedGreen = Color.Lerp(Color.White, Color.Green, 0.3f);