2011-10-12 234 views
0

我知道以前有人問過這個問題,但似乎他們的解決方案對我不起作用,或者我做錯了什麼。未將對象引用設置爲對象的實例#100

public class Sprite 
{ 
    private Game m_game; 
    private SpriteBatch m_spriteBatch; 
    private string m_filename; 
    private Texture2D m_texture; 

    public Sprite(Game game, SpriteBatch spriteBatch, GraphicsDevice graphicsDevice) 
    { 
     m_game = game; 
     m_spriteBatch = spriteBatch; 
     m_texture = new Texture2D(graphicsDevice, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height); 
    } 

    public void LoadSprite(string filename) 
    { 
     m_texture = m_game.Content.Load<Texture2D>(filename); 
    } 
} 

當我傳遞「tree」作爲文件名時,在LoadSprite中產生錯誤。 m_texture不爲null,因爲(試圖)在構造函數中初始化它。 對主循環使用與Content.Load相同的調用,但我想將其移入Sprite類。

treeTexture = Content.Load<Texture2D>("tree"); 

這在主循環中正常工作,因此它顯示「樹」文件存在。

任何人都可以看到我做錯了什麼?

+3

m_game或m_game.Content爲空嗎? – Joey

+1

那麼你的IDE應該很容易爲你提供哪些對象是NULL。我們不知道... – RvdK

+0

可能的重複[什麼是.NET中的NullReferenceException?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net) –

回答

0

m_game或m_game.Content可能爲空。

+0

m_game爲空,因爲在調用中傳遞給它的「遊戲」爲null。我必須把:game = this;在主類的構造函數中。 –

相關問題