2011-12-21 42 views
1

我会如何将Content.RootDirectory设置为绝对路径,以便我可以从Content以外的地方加载?.NET 4.0 + XNA 4.0 - 给定绝对路径时Content.RootDirectory不工作?

我不认为我的意思来,因为这是给不存在的错误:

Content.RootDirectory = "C:\\Users\\pc user\\Desktop\\"; 

outputFont = Content.Load<SpriteFont>("SpriteFont1"); 

SpriteFont1.spritefont definitly存在于C:\用户\ PC用户\桌面。毫无疑问。

这是一个有效的SpriteFont类文件,我刚搬到它的内容,它是工作的罚款,到我的桌面,它是..呃..不。

我确实需要做到这一点,但如果你实际上无法从使用Content.Load的绝对路径加载Texture2Ds和SpriteFonts等,我愿意安装一个库或其他东西来做到这一点。

我希望我只是犯了一个'愚蠢的错误',它会起作用。

错误是:

ContentLoadException was unhandled 

Error loading "SpriteFont1". File not found. 
+0

试试这个链接的例子如何开始.. http://msdn.microsoft.com/en-us/library/advertising-mobile-windows-phone -7-xna-api(MSADS.20).aspx找到许多使用C#类型的C#Content.RootDirectory进入Google搜索的示例 – MethodMan 2011-12-21 18:58:12

回答

0

只注意到了Texture2D.FromStream方法。我会张贴未来的读者的享受:

public Stream stream; 
Texture2D x; 

stream = File.OpenRead("C:\\Users\\pc user\\Desktop\\faceGuy.png"); 
x = Texture2D.FromStream(GraphicsDevice, stream); 

spriteBatch.Draw(x, new Rectangle(0, 0, 32, 32), Color.White); 
0

为何要将您的SpriteFont类的和纹理到你的桌面时,它的工作内容完全正常?

而我认为要移动内容的位置,您将不得不倒退。

Content.RootDirectory = "Content\\..\\.."; 

而且也不要忘记,并不是所有的计算机都使用C:他们的主要文件目录,除非这是仅供个人使用,那么很显然你。

并且被导入到您的内容项目中的spritefont。如果它现在在你的桌面上,那么它很可能不再被导入,至少在它不知道的地方。

这里是一个类似问题的答案。图片链接不再有效,但答案可能会帮助你。 https://gamedev.stackexchange.com/q/9748/11721

+0

我正在开发一种游戏开发方式,一种XNA,我认为它被称为包装,所以使用不幸的是,内容不是一种选择。 :( – 2011-12-21 19:44:30