ArgumentNullException未处理有什么问题?

问题描述:

我写了一个类加载一个XML文件,但我总是收到此错误信息:ArgumentNullException未处理有什么问题?

ArgumentNullException了未处理 这种方法不适合此参数接受空。 参数名:质地

我得到的batch.Draw()的错误信息:

public void Draw(SpriteBatch batch) 
{ 
     batch.Draw(
       texture, 
       position, 
       null, 
       Color.White, 
       rotation, 
       Vector2.Zero, 
       scale, 
       SpriteEffects.None, 
       0f); 
     } 

有什么不对Sprite类? 我上传了我的项目在这里:http://depositfiles.com/files/kj4an4ef7

的问题是,像错误说,在Sprite绘图代码变量texture为空。

问题的原因是:你叫Load()方法来加载XML文件中的精灵列表中,但不会重建Sprite类的Texture财产。因此,要解决您的错误,对于每个精灵,您也应该调用Load()

这意味着,在Game1类的LoadContent()法,sprites = Content.Load<List<Sprite>>("Levelinf");线后,做这样的事情:

foreach(Sprite sprite in sprites) { 
    sprite.Load(Content); 
} 

现在,每个精灵都会有它的纹理加载。

PS:这更像是一个C#/ XNA问题,而不是一个XML :)

+0

谢谢!你救了我的一天! – 2012-07-07 16:47:53

+0

你应该将他标记为接受:) – 2012-07-09 16:24:32