2011-07-20 47 views
0

我對XNA很陌生。其實我有XNA 4.0本書由kurt jaegers,所以我安裝了VS 2010和XNA 4.0並編寫了我的第一個程序。但該程序沒有成功運行,它一直顯示未找到文件ContentLoadException。所以我在網上做了一些研究,發現XNA 4.0存在一些問題。所以我卸載了VS 2010 & XNA 4.0並安裝了VS 2008(快速版)& XNA 3.0。然後我編譯了我的第一個程序,併成功運行。ContentLoadException問題

但是,現在我又面臨着與我的新項目一樣的問題。我試過兩種語法:

xx = this.Content.Load<Texture2D>("TitleScreen"); 
xx = Content.Load<Texture2D>(@"TitleScreen"); 

而且沒有拼寫不匹配的問題。請Mods指導我。請告訴我爲什麼我一次又一次地得到這個問題。

System Specs : 
XP sp3,i3,2gb RAM. 
+0

您的內容應該包含在您的資源項目中。確保你先把它導入那裏。你不能僅僅魔法地「彈出」內容,它必須先被編譯到你的資源應用程序中。 –

回答

0

爲了正確地加載內容,你需要使用泛型方法

ContentManager.Load<T> 

例如,如果你想加載一個Texture2D元素,使用下面的語法:

Texture2D texture = Content.Load<Texture2D>("textureName"); 

瞭解更多關於加載內容this link

+0

是的,我做了同樣的事,但那個彈出,除了。 – Vishal

+1

您是否在項目的輸出路徑下的Content(默認)下有TitleScreen.xnb? –

+0

我在哪裏找到那個文件,我在這裏有點新,所以不知道所有的細微差別。 – Vishal

1

要通過ContentManager加載的內容需要位於內容項目中。假裝了一下它看起來像這樣

Mygame.Content> SomeFolder> textureName

你會使用content.Load<Texture2D>("SomeFolder/textureName")得到它。如果它在內容項目的根目錄content.Load<Texture2D>("textureName")將工作。如果(並且因爲)它不是有兩件事要檢查

  1. 右鍵單擊紋理並轉到屬性。查看AssetName屬性。這是您通過內容管理器加載它的原因。嘗試使用這個名字。
  2. 內容管理器查找的根目錄是「內容」。看看Content.RootDirectory,看看它是什麼。如果它不是「內容」,則將其更改爲該內容。這也可以起作用。
0

ContentManagers存在一個已知問題,該問題不是由默認的Game對象構造函數實例化的,這會導致您遇到的問題。

如果你確實使用ContentManager對象不是遊戲對象上提供了一個其他的解決辦法是:

當你實例化ContentManager,你應該設置它的RootDirectory屬性

@」內容「

希望它有幫助