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

标签 c# xna xna-4.0 monogame

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

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

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

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

绘制它:

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

我的开始语句使用默认值。我没有传递任何参数(反正我不了解它们)。

spriteBatch.Begin();

最佳答案

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

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

或者,如果您直接加载 png,您可能需要 BlendState.NonPremultiplied。尝试使用这些值,看看哪种效果最适合您。

关于c# - Monogame 和 XNA - 如何加载/使用半透明图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19130162/

相关文章:

c# - DataGridView 的替代品

c# - 在 MS Word 中加载 Word Addin

c# - 用计时器延迟 xna 游戏

c# - XNA 4.0 自定义顶点声明

c# - 对象识别自身并运行特定逻辑的最佳方式是什么?

C# 无法关闭后台 worker 创建的表单

c# - 如何正确使用 LINQ to XML?

performance - WP7 开始歌曲播放性能不佳

c# - 我如何在 XNA 4.0 中使用搅拌器动画?