在XNA中显示sprite的数组

时间:2012-07-06 03:26:12

标签: c# xna sprite

我创建了一个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);
            }
        }
    }

我创建了一个包含精灵的纹理,下一个位置是根据纹理中图像所需的宽度计算出来的(一个图像加载为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();  

但是当我运行程序时,它只向我显示1个图像,而不是4行4个图像

1 个答案:

答案 0 :(得分:0)

不太确定,但有一件事。 我想你的意思是SpritePosition[i, j] = new Vector2(i*texture.Width , j*texture.Height); (第二次高度,而不是宽度)

我认为这里不需要数组,为什么不只是

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

此外,这不是“您的代码”网站。我看到你刚刚回答了我的问题后就发布了这个问题。看起来你似乎没有考虑过想要自己解决这个问题。