我问这里关于XNA而不是官方论坛,因为我国的人不允许登录新的XNA网站。
嗯,这些是我的问题:
我想使用我在Paint Shop Pro / Photo Shop / Paint中创建的一些2D图像,但由于某种原因,我需要使用网页安全托盘及其目前显示的设置(我使用透明度) 。 可以任意1请向我解释我如何使用透明度&其他设置(创建和保存图像时),以便XNA(4.0)可以正确显示它? 顺便说一下,我可能需要一些1向我解释如何设置“GraphicsDevice”-s设置以使用透明层/通道。
我确实尝试按照我应该做的事情(微软的观点)&因此,我使用内容管道来加载我的内容 ALL (包括类启动数据文件)。 我使用 .txt 文件存储我的班级启动数据&我用简单好的旧记事本(++:P)编辑它们。 现在,问题在于我所做的就是将 .txt 文件作为一个非常长的字符串加载而不是创建我的GameDataFile类的新实例。 因为我被迫分两步完成:
第1步:
string tempStrData = content.load<string>("data/filename").Replace("\r", "");
/* Loads a string from a file (the string is the whole file!) */
第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");
我认为我应该使用自定义内容管道处理器,任何意见,如果我是对的&amp;我该怎么做?
请不要让我使用公共成员,因为我总是将其设置为私有,我讨厌并严格禁止使用C#-ONLY-get-&amp; -set方法。
先谢谢你,Tal A。
答案 0 :(得分:1)
关于第一个问题,在开始SpriteBatch时将blendstate设置为AlphaBlend:
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null);
我将我的图像保存为PhotoShop中的PNG,允许透明。
编辑:除非您指的是3D纹理。如果是这样,我将不得不修改我的答案
编辑:对于问题2,App Hub上的this example显示了如何执行此操作。