现在,我正在XNA开展一场Jump'n'Run游戏。我决定从tileset加载纹理, 并设计了一种获取较大矩形的源矩形的方法。在该方法中,计算出的矩形被添加到列表中,并且在方法结束时返回列表。但是,该方法似乎无法正常工作。当试图从列表中的给定索引中获取矩形时,我得到一个超出范围异常的索引。我尝试了几个数字,它仍然无法正常工作。这是获取矩形的方法:
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
}
为什么会发生这种情况?