我编写了一个加载XML文件的类,但我总是收到此错误信息:
ArgumentNullException未处理 此方法不接受此参数的null。 参数名称:texture
我在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
答案 0 :(得分:0)
问题在于,与错误一样,texture
绘图代码中的变量Sprite
为空。
问题的原因是:您调用Load()
方法从XML文件加载sprite列表,但这不会重建Texture
的{{1}}属性类。因此,要修复错误,对于每个精灵,您也应该调用Sprite
。
这意味着,在Load()
类的LoadContent()
方法中,在Game1
行之后,执行以下操作:
sprites = Content.Load<List<Sprite>>("Levelinf");
现在,每个精灵都会加载它的纹理。
PS:这更像是C#/ XNA问题而不是XML问题:)