2011-10-12 5 views
0

Je sais que des personnes ont déjà posé cette question, mais il semblerait que leur solution ne fonctionne pas pour moi ou que je fasse quelque chose de mal.Référence d'objet non définie sur une instance d'un objet # 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); 
    } 
} 

L'erreur est générée à LoadSprite lorsque je transmets "tree" comme nom de fichier. m_texture n'est pas nul car (essayé de) l'initialiser dans le constructeur. Le même appel à Content.Load est utilisé dans la boucle principale, mais je souhaite le déplacer dans la classe Sprite. Cela fonctionne très bien dans la boucle principale, ce qui montre que le fichier "tree" existe.

Quelqu'un peut-il voir ce que je fais mal? M_game ou m_game.Content est probablement nul.

+3

Est-ce que m_game ou m_game.Content est nul? – Joey

+1

Eh bien, votre IDE devrait facilement vous fournir quel objet est NULL. Nous ne savons pas ... – RvdK

+0

duplication possible de [Qu'est-ce qu'une exception NullReferenceException dans .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net) –

Répondre

0

+0

m_game était nul parce que "jeu" qui lui était passé dans l'appel était nul. Je devais mettre: game = this; dans le constructeur de la classe principale. –

Questions connexes