2011-07-09 121 views

回答

32

假设您使用带预乘alpha的XNA 4.0。在你的spritebatch.draw中,将颜色乘以一个浮点数,0.5f为50%的透明度,然后像通常一样绘制。如果你不使用预乘alpha,我建议你为了性能的原因做,而且在你习惯之后更直观。

例子:

_spriteBatch.Draw(texture, location, Color.White * 0.5f); 

编辑: 另外,请确保您的混合状态设置为BlendState.AlphaBlend,或支持阿尔法和不NonPremultiplied另一混合状态。

实施例:

_spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); 
+7

使用乘法运算符上'Color'调制所有四个通道(RGBA)和只使用预乘混合模式时提供了在透明性的预期变化(例如:'AlphaBlend')。对于其他混合状态按预期工作(例如:“添加剂”和“非预先复制”),应该直接设置颜色的alpha值(仅剩下RGB)。 –

6

只需使用颜色作为new Color(RGBA);其中:

  • R是红色
  • G是绿色
  • B是蓝
  • A是阿尔法

例如:

new Color(100, 100, 100, 100); 
+2

这可能不是有意的,但你只是告诉我,'颜色'参数不是en en lol!我不知道你可以创建自己的颜色。 – TheGateKeeper