我正在尝试将图像绘制到屏幕上。我的图像绘制正确,但透明的背景颜色显示为黑色。
为什么会这样?
我的代码:
spriteBatch.Draw(Texture, Position + origin, SourceRect, Color.White * Alpha, 0.0f, origin, Scale, SpriteEffects.None, 0.0f);
答案 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。