2016-12-05 64 views
0

我最近進入了C#與XNA,我只是過渡到MonoGame,因爲我讀過XNA不再被支持。有了這個說法,我在MonoGame中遇到了一個問題,那就是當我試圖在我的程序中爲一個Sprite類創建一個Load()方法時,我沒有使用XNA。我用來做什麼的在XNA的方法如下:MonoGame ContentManager類?

public void Load(ContentManager content) 
{ 
    content.Load<Texture2D>(AssetName); 
} 

現在我有MonoGame的問題是,我似乎無法引用ContentManager在我的Sprite類。該類具有我的Game1類具有的所有'使用Microsoft.Xna.Framework',並且我的代碼中沒有任何內容是靜態的,所以我不明白爲什麼我不能引用ContentManager,因爲在嘗試將它放入時不能識別它Load()。有沒有在MonoGame中做到這一點的另一種方法,還是我沒有正確引用它?

回答

0

假設你已經引用了MonoGame.Framework.dll或NuGet包,代碼沒有什麼特別之處。它應該看起來像這樣:

using Microsoft.Xna.Framework.Content; 
using Microsoft.Xna.Framework.Graphics; 

namespace YourGameProject 
{ 
    public class Sprite 
    { 
     public string AssetName { get; set; } 

     public void Load(ContentManager content) 
     { 
      content.Load<Texture2D>(AssetName); 
     } 
    } 
} 

我剛剛在我自己的項目中編寫了代碼,它編譯。如果它不適合你,那肯定還有其他問題。

+0

該死的,這幾乎是我寫的,它似乎無法識別我的Sprite類中的ContentManager。我會得到VS和MonoGame的全新副本,看看它是否可行。儘管如此,謝謝! –

1

嗯,我沒有看到這個問題的時候了,但我會盡力幫助:

  • 你可能嘗試過用鼠標右鍵單擊/解決了,但它是值得一說的是反正。

  • 提醒您在Monogame中加載內容與使用XNA不同。您必須使用內置管道工具並在那裏傳輸內容,不要忘記每次上傳新紋理時都要構建它。

  • Content.RootDirectory沒有變化?

只是做一些單挑,以確保你已經做到了。希望這也能幫助你。