C# Monogame和XNA-如何加载/使用半透明图像?

C# Monogame和XNA-如何加载/使用半透明图像?,c#,xna,xna-4.0,monogame,C#,Xna,Xna 4.0,Monogame,我是一名经验丰富的开发人员,但对图形/游戏编程完全一无所知,所以请像我5岁一样向我解释 我写一个简单的游戏是为了学习游戏编程。我使用Paint.NET创建了一个*.png图像,并使图像50%透明。然而,当我加载图像时,它似乎没有任何透明度。该对象看起来像纯色。(为了清楚起见,我正在尝试使整个图像半透明或“透明”,而不仅仅是制作带有透明背景的立体图像。尽管我也希望能够做到这一点。) 我很乐意展示任何可能有帮助的代码,尽管您可以假设我在这里没有做任何花哨的事情。例如,加载纹理: var Textur

我是一名经验丰富的开发人员,但对图形/游戏编程完全一无所知,所以请像我5岁一样向我解释

我写一个简单的游戏是为了学习游戏编程。我使用Paint.NET创建了一个*.png图像,并使图像50%透明。然而,当我加载图像时,它似乎没有任何透明度。该对象看起来像纯色。(为了清楚起见,我正在尝试使整个图像半透明或“透明”,而不仅仅是制作带有透明背景的立体图像。尽管我也希望能够做到这一点。)

我很乐意展示任何可能有帮助的代码,尽管您可以假设我在这里没有做任何花哨的事情。例如,加载纹理:

var Texture=content.Load(“游戏件”);
并绘制它:

spriteBatch.Draw(纹理、位置、颜色、白色);
我的begin语句使用默认值。我没有传递任何参数(无论如何我都不了解它们)

spriteBatch.Begin();

诀窍在于方法的参数。在您的情况下,您需要设置。迟早您可能也会想使用一些其他参数,但现在您可以摆脱2参数重载。如果要将资产预编译为XNB文件,可能需要BlendState.AlphaBlend或BlendState.Additional,如下所示:

_spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend);

或者,如果直接加载png,则可能需要BlendState.NonPremultiplied。玩转这些值,看看什么效果最适合你。

现在接受答案还不晚:)