0

スプライトが表示される場所の位置を保持する Vector2 の配列を作成しました。
Vector2[,] SpritePosition = new Vector2[4,4];

次に、各メンバーの位置を初期化する for ループを作成しました。

public void loadArray()
    {
        for(int i=0;i<4;i++)
        {
            for(int j=0;j<4;j++)
            {
                SpritePosition[i, j] = new Vector2(i*texture.Width , j*texture.Width);
            }
        }
    }

スプライトを保持するテクスチャを作成しました。次の位置は、テクスチャ内の画像に必要な幅に応じて計算されます (1 つの画像が 4 行 4 列で読み込まれます)。

次に、 Draw() 関数で次のコードを使用しました

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
        for(int i=0;i<4;i++)
            for(int j=0;j<4;j++)
                spriteBatch.Draw(texture, SpritePosition[i,j], Color.White);
        spriteBatch.End();  

しかし、プログラムを実行すると、4行4行ではなく、1つの画像しか表示されません

4

1 に答える 1

0

よくわかりませんが、1つだけです。私はあなたが意味したと思いますSpritePosition[i, j] = new Vector2(i*texture.Width , j*texture.Height); (幅ではなく、2回目の高さ)

そして、私はここに配列の必要がないと思います。

spriteBatch.Draw(texture, new Vector2(i*texture.Width,j*texture.Height), Color.White);

また、これは「あなたのためのコード」サイトではありません。私があなたの最後に答えた直後にあなたがこの質問を投稿したのを見ます。どうやらあなたはそれを自分で理解しようと試みているようには見えません。

于 2012-07-06T03:29:25.107 に答える