I'm doing a basic 2D array in C# and I've got a bit of confusion.
I'm a lot more used to working with 1-based arrays, so 0-based arrays kind of mess up my head if you know what I mean.
blocks = new Block[15, 999];
for (int x = 0; x <= 15; x++)
{
for (int y = 0; y <= 999; y++)
{
blocks[x, y] = new Dirt(terrainTexture, new Vector2(x * 16, y * 16));
}
}
So it's telling me I'm out of bounds of the array?
If the array is from
0-15, 0-999
Shouldn't a loop from 0-15, 0-999 work?
It's not. 999 is the length of the array. Thusly, it's from 0-998, and when you loop over it, you should be in the habit of using "less than" rather than "less than or equal" -- then it will tend to come out right.
你有15和999个元素,但由于数组是0索引的,这意味着它们分别从0-14和0-998运行。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.