I have been having trouble drawing a 2d texture array for my different levels for a breakout clone. Below is the code I have thus far. Right now, it draws the bricks 7 wide and 10 tall...however, I want it to be 10 wide, and 7 tall. Right now I am initializing it with a bricks of one color (green) just to make sure it is drawing where I want it. However, how would I draw a blank space where I have a 0 in my 2d array? Any help would be appreciated.
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace BreakThroughTime
{
class Levels1950
{
// Variables for bricks
// Texture2D array to store the different colors of bricks
private List<Texture2D> brickList;
// Brick textures
private Texture2D greenBrick, blueBrick, yellowBrick, redBrick;
// Texture for background
private Texture2D backgroundTexture;
// List for rectangles used to detect collision when bricks are drawn
private List<Rectangle> brickPosition;
// Bool to determine if a brick is active or not
private bool isActive;
// Bool to determine if level is complete
private bool isLevelComplete;
// Level 1 map
private int[,] map = new int[,]
{
{1,1,0,1,1,1,0,1,0,0,},
{1,0,0,1,0,1,0,0,0,0,},
{1,0,0,1,0,1,0,0,1,1,},
{1,1,0,1,0,1,0,0,1,0,},
{0,1,0,1,0,1,0,0,1,1,},
{0,1,0,1,0,1,0,0,0,1,},
{1,1,0,1,1,1,0,0,1,1,},
};
// Get upper bounds for map array
int bound0;
int bound1;
// Constructor for LevelManager
public Levels1950(Texture2D greenBrick, Texture2D blueBrick, Texture2D yellowBrick, Texture2D redBrick, Texture2D backgroundTexture)
{
this.greenBrick = greenBrick;
this.blueBrick = blueBrick;
this.yellowBrick = yellowBrick;
this.redBrick = redBrick;
this.backgroundTexture = backgroundTexture;
brickList = new List<Texture2D>();
brickList.Add(this.greenBrick);
brickList.Add(this.blueBrick);
brickList.Add(this.yellowBrick);
brickList.Add(this.redBrick);
isActive = false;
isLevelComplete = false;
bound0 = map.GetUpperBound(0);
bound1 = map.GetUpperBound(1);
}
public void Update(GameTime gameTime)
{
}
public void Draw(SpriteBatch spriteBatch)
{
for (int x = 0; x <= bound0; x++)
{
for (int y = 0; y <= bound1; y++)
{
if (map[x,y] == 0)
spriteBatch.Draw(greenBrick, new Vector2(x * greenBrick.Width, y * greenBrick.Height), Color.White);
if (map[x,y] == 1)
spriteBatch.Draw(greenBrick, new Vector2(x * greenBrick.Width, y * greenBrick.Height), Color.White);
}
}
}
}
}