我正在使用SpriteBatch在屏幕上绘制Texture2D,并想知道如何操纵图像的不透明度?有人知道实现这个目标的最佳方法吗?
答案 0 :(得分:34)
假设您正在使用带有预乘alpha的XNA 4.0。在你的spritebatch.draw中,将颜色乘以浮点数,0.5f,50%透明度,并按正常情况绘制。如果您不使用预乘alpha,我建议您出于性能原因而做,并且在您习惯它之后更直观。
示例:
_spriteBatch.Draw(texture, location, Color.White * 0.5f);
编辑: 还要确保将混合状态设置为BlendState.AlphaBlend,或者另一个支持alpha且不是NonPremultiplied的混合状态。
示例:
_spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
答案 1 :(得分:6)
只需将颜色用作new Color(RGBA);
,其中:
例如:
new Color(100, 100, 100, 100);