Foreach loop with 2d array of objects
- by Jacob Millward
I'm using a 2D array of objects to store data about tiles, or "blocks" in my gameworld. I initialise the array, fill it with data and then attempt to invoke the draw method of each object.
foreach (Block block in blockList)
{
block.Draw(spriteBatch);
}
I end up with an exception being thrown "Object reference is not set to an instance of an object".
What have I done wrong?
EDIT:
This is the code used to define the array
Block[,] blockList;
Then
blockList = new Block[screenRectangle.Width, screenRectangle.Height];
// Fill with dummy data
for (int x = 0; x <= screenRectangle.Width / texture.Width; x++)
{
for (int y = 0; y <= screenRectangle.Height / texture.Width; y++)
{
if (y >= screenRectangle.Height / (texture.Width*2))
{
blockList[x, y] = new Block(1, new Rectangle(x * 16, y * 16, texture.Width, texture.Height), texture);
}
else
{
blockList[x, y] = new Block(0, new Rectangle(x * 16, y * 16, texture.Width, texture.Height), texture);
}
}
}