c# - 在 XNA 的内容管道 (2Qs) 方面需要帮助

标签 c# xna

我在这里询问有关 XNA 的问题,而不是在它的官方论坛上,因为不允许来 self 国的人登录到新的 XNA 网站。

好吧,这些是我的问题:

  1. 我想使用我在 Paint Shop Pro/Photo Shop/Paint 中创建的一些 2D 图像,但出于某种原因,我需要使用网络安全托盘和此类设置以使其当前显示(我使用透明度) . 任何人都可以向我解释一下如何使用透明度和其他设置(在创建和保存图像时)以便 XNA (4.0) 可以正确显示它吗? 顺便说一下,我可能只需要一些 1 来向我解释如何设置“GraphicsDevice”-s 设置以使用透明层/ channel 。

  2. 我确实尝试做我应该做的事情(根据 Microsoft 的观点)& 因此我将内容管道用于所有我的内容加载(包括类启动数据文件) . 我使用 .txt 文件来存储我的类(class)启动数据,并使用简单的旧记事本 (++ :P) 编辑它们。 现在,问题是我设法做的就是将 .txt 文件加载为一个非常长的字符串,而不是创建我的 GameDataFile 类的新实例。 因此,我被迫分两步完成:

第一步:

string tempStrData = content.load<string>("data/filename").Replace("\r", "");

/* 从文件中加载一个字符串(字符串就是整个文件!)*/

第 2 步:

GameDataFile gameDataFile = new GameDataFile(tempStrData.Split('\n'));
/* Sends the string to my GameDataFile class constructor which knows how to handle that string and break it to it's data elements (ints, strings vectors, etc...) */

我想把它升级成下面的形式:

GameDataFile gameDataFile = content.load<GameDataFile>("data/fileName");

我认为我应该使用自定义内容管道处理器来执行此操作,如果我是对的,有什么意见吗?我应该如何实现?

P.S 请不要让我使用公共(public)成员,因为我总是将其设置为私有(private)成员,我讨厌并严格禁止自己使用 C#-ONLY-get-&-set 方法。

提前致谢,Tal A。

最佳答案

对于第一个问题,在开始 SpriteBatch 时将混合状态设置为 AlphaBlend:

spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null);

我在 PhotoShop 中将图像保存为 PNG 格式,这样可以实现透明。

编辑:除非您指的是 3D 纹理。如果是这样,我将不得不修改我的答案

编辑:至于问题 2,this example App Hub 上展示了如何操作。

关于c# - 在 XNA 的内容管道 (2Qs) 方面需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414094/

相关文章:

c# - IIS6 在经典 ASP 网站下运行 ASP.NET 虚拟目录

c# - C#.net循环线程堆栈溢出

windows-phone-7 - XNA Windows Phone 7 应用程序中的最低 FPS 应该是多少?

c# - 等距,仅在屏幕图 block 上绘制

C# 计算 SEPA (XML) 付款文件的 SHA256 值

c# - 循环内 if 语句的潜在影响

c# - 在 C# 上读取两个 MySql 查询

c# - 汇总单个变量的各种数值效应的结果

c# - MSBuild 程序集锁

c# - 我的 C# XNA 游戏的玩家类