设计用于将tileset分割为数组的方法在给定多个行时失败
本文关键字:失败 方法 用于 tileset 分割 数组 | 更新日期: 2023-09-27 18:09:09
这就是所讨论的方法:
Color[][] ChopUpTiles()
{
int numTilesPerRow = terrainTiles.width / tileResolution;
int numRows = terrainTiles.height / tileResolution;
Color[][] tiles = new Color[numTilesPerRow * numRows][];
for (int y = 0; y < numRows; y++)
{
for (int x = 0; x < numTilesPerRow; x++)
{
tiles[y * numTilesPerRow + x] = terrainTiles.GetPixels(x * tileResolution , y * tileResolution, tileResolution, tileResolution);
}
}
return tiles;
}
这是一个非常基本的函数,并且工作-只要所讨论的标题集只有一行。如果它不止一行,它就会崩溃。突然间,使用"tiles[1]"不再返回tile 1。相反,它返回…15瓦。我不知道为什么它会这样做,也不知道数学在哪里错了。有人能看出是怎么回事吗?
你是指tiles[y][numTilesPerRow + x]
或tiles[y][x]
之类的东西吗?因为我不知道你在做什么,但你正在检索整个行,而不是tile本身。
也,我认为Color[][] tiles = new Color[numTilesPerRow * numRows][];
应该是Color[][] tiles = new Color[numRows][numTilesPerRow];
还是我错了?
基本上,你有一个多维的Array
但是你把它当作单维的Array