2011-10-12 15 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); 
    } 
} 

「ツリー」をファイル名として渡すと、LoadSpriteでエラーが生成されます。 m_textureはコンストラクタ内で初期化しようとしたためにnullではありません。 Content.Loadへの同じ呼び出しは、メインループではうまく使用されますが、Spriteクラスに移動したいと思います。

これはメインループで正常に動作し、「ツリー」ファイルが存在することを示しています。

誰かが間違っているのを見ることはできますか?

+3

m_gameまたはm_game.Contentはnullですか? – 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はおそらくnullです。

+0

m_gameはnullだったため、コールで渡された「game」はnullでした。私は置く必要があった:game = this;メインクラスのコンストラクタにあります。 –

関連する問題