>我创建了一个 Vector2 数组,它保存了显示精灵的位置:
向量 2[,] 精灵位置 = 新向量 2[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 张
确定,但有一件事。我想你的意思是SpritePosition[i, j] = new Vector2(i*texture.Width , j*texture.Height);
(高度第二次,不是宽度)
而且我认为这里不需要数组,为什么不只是
spriteBatch.Draw(texture, new Vector2(i*texture.Width,j*texture.Height), Color.White);
此外,这不是一个"为您编写代码"的网站。我看到你在我回答了你的最后一个问题后就发布了这个问题。看来你似乎并没有想过要自己弄清楚。