0

我编写了一个类来加载 XML 文件,但我总是收到以下错误消息:

ArgumentNullException 未处理 此方法不接受此参数的 null。参数名称:纹理

我在 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

4

1 回答 1

0

问题是,正如错误所说,绘图代码中的变量为空textureSprite

问题的原因是:您调用该Load()方法从 XML 文件中加载精灵列表,但这不会重建类的Texture属性Sprite。因此,要修复您的错误,您也应该为每个精灵调用Load()

这意味着,在类的LoadContent()方法中Game1,在该sprites = Content.Load<List<Sprite>>("Levelinf");行之后,执行以下操作:

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

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

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

于 2012-07-07T11:04:57.390 回答