现在,我正在 XNA 中开发一个小型 Jump'n'Run 游戏。我决定从瓦片集中加载纹理,并设计了一种方法来获取更大矩形的源矩形。在该方法中,计算出的矩形被添加到一个列表中,该列表在方法结束时返回。但是,该方法似乎无法正常工作。当试图从列表中的给定索引中获取一个矩形时,我得到了一个超出范围异常的索引。我尝试了几个数字,它仍然无法正常工作。这是我获取矩形的方法:
public static List<Rectangle> getSourceRectangles(Rectangle original, int partWidth, int partHeight)
{
List<Rectangle> rlist = new List<Rectangle>();
int ix, iy;
ix = original.Width / partWidth;
iy = original.Height / partHeight;
for (int x = 0; x < ix; x++)
{
for (int y = 0; y < iy; y++)
{
Rectangle r = new Rectangle(x * partWidth, y * partHeight, partWidth, partHeight);
rlist.Add(r);
}
}
return rlist;
}
我将返回值保存在全局 Container 类中。这是我得到的错误:(只是 NormalTile 类的构造函数!)
public NormalTile(int _TextureIndex,Rectangle _rect)
{
this.rect = _rect;
this.TileTextureIndex = _TextureIndex - 1;
this.tex_rect = Global.TileTextures[TileTextureIndex];//HERE
}
为什么会发生这种情况?