2011-12-21 41 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