如何使Texture2D 50%透明? XNA

时间:2011-07-09 04:30:19

标签: xna transparency opacity

我正在使用SpriteBatch在屏幕上绘制Texture2D,并想知道如何操纵图像的不透明度?有人知道实现这个目标的最佳方法吗?

2 个答案:

答案 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);,其中:

  • R为红色
  • G是绿色
  • B是Blue
  • A是Alpha

例如:

new Color(100, 100, 100, 100);