# Color sprite tint with opacity in MonoGame/XNA

In MonoGame I am using SpriteBatch to draw sprites. I want to create a semi transparent overlay that would 'tint' the sprite with a given color. SpriteBatch.Draw accepts Color parameter that allows to specify the tint, however the alpha channel seems to make the whole sprite transparent (not the tint only).

To address the problem i am overlaying my sprites with another white, semitransparent sprite tinted to a given color. It works as expected, but I am not sure if that is the correct (and most optimal) approach.

Can you suggest better/faster technique?

Don't use a color with alpha in the SpriteBatch.Draw(...Color). Your sprite's transparent parts will stay that way, and their opaque parts will be tinted.
• In that case, try using something that is almost white. Like Color(250,255,250) Oct 21 '12 at 8:34
Color desaturatedGreen = Color.Lerp(Color.White, Color.Green, 0.3f);