2013-10-02 34 views
3

我是一名经验丰富的开发人员,但对图形/游戏编程总是没有意义,所以请 - 像我5岁那样向我解释它。Monogame和XNA - 如何加载/使用半透明图像?

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

我很高兴地展示任何代码可能会有所帮助,虽然你可以认为我在这里没有做任何事情。例如,加载质地:

var Texture = content.Load<Texture2D>("Gamepiece"); 

并借鉴它:

spriteBatch.Draw(Texture, Location, Color.White); 

我开始语句使用默认值。我没有传入任何参数(无论如何我都不了解它们)。

spriteBatch.Begin(); 
+0

接受答案还不算太迟:) – increddibelly

回答

5

诀窍是在参数SpriteBatch.Begin方法。在你的情况下,你想设置BlendState。迟早你可能会想使用其他一些参数,但现在你可以避开2参数重载。如果你是预编译的资产注入XNB文件,你可能会想无论是BlendState.AlphaBlend或BlendState.Additive这样的:

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

或者,如果你是直接加载PNG,你可能会想BlendState.NonPremultiplied 。仔细研究这些值,看看最适合你的效果。