0

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

4

1 に答える 1

0

問題は、エラーが言うようtextureに、Sprite描画コードの変数がnullであるということです。

問題の原因は次のとおりです。XMLファイルからスプライトのリストをロードするメソッドを呼び出しますが、クラスのプロパティはLoad()再構築されません。したがって、エラーを修正するには、スプライトごとに呼び出しも行う必要があります。TextureSpriteLoad()

つまり、クラスのLoadContent()メソッドで、行の後に次のようなことをします。Game1sprites = Content.Load<List<Sprite>>("Levelinf");

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

これで、各スプライトにテクスチャがロードされます。

PS:これはXMLの問題というよりもC#/XNAの問題に似ています:)

于 2012-07-07T11:04:57.390 に答える