我的纹理透明度显示为黑色

时间:2015-01-30 16:38:47

标签: c# xna

我正在尝试将图像绘制到屏幕上。我的图像绘制正确,但透明的背景颜色显示为黑色

为什么会这样?

我的代码:

spriteBatch.Draw(Texture, Position + origin, SourceRect, Color.White * Alpha, 0.0f, origin, Scale, SpriteEffects.None, 0.0f);                

1 个答案:

答案 0 :(得分:1)

看一下SpriteBatch类的Begin方法: https://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.spritebatch.begin.aspx

可以将BlendState设置为忽略纹理的alpha值的东西。

要检查内容处理器是否正确导入纹理的alpha值,请尝试运行此代码,0,0处的像素是透明像素:

Color[] tData = null;
texture.GetData<Color>(tData);
Debug.Print(tData[0].ToString());

纹理是您从ContentManager加载的Texture2D。