I'm triyng to make an Automated type tile system to draw my int[,] tileMap according to my Texture Atlas but when i run the code i get the entire thing sideways and the textures don't appear, the only way i know it's sideways is because the "Color color" for drawing the textures are different then the ClearScreen's color.
Tile Sorting Class:
public Texture2D Texture { get; set; }
public int Rows { get; set; }
public int Columns { get; set; }
public int totalTiles;
public int _tileWidth;
public int _tileHeight;
public int[] tiles;
public int[,] tileMap = new int[,] {
{0,0,0,0,0,0,2,0,0,0,},
{0,0,0,0,0,2,2,0,0,0,},
{0,0,0,0,0,2,0,0,0,0,},
{0,0,0,0,0,2,0,0,0,0,},
{0,0,0,2,2,2,0,0,0,0,},
{0,0,0,2,0,0,0,0,0,0,},
{0,0,0,2,0,0,0,0,0,0,},
{0,0,2,2,0,0,0,0,0,0,},
{0,0,2,0,0,0,0,0,0,0,},
{0,0,2,0,0,0,0,0,0,0,}
};
public Tile(Texture2D texture, int tileWidth, int tileHeight)
{
_tileWidth = tileWidth;
_tileHeight = tileHeight;
Texture = texture;
totalTiles = Rows * Columns;
}
public void Update() {
}
public void Draw(SpriteBatch spriteBatch, Vector2 location)
{
for (int row = 0; row < tileMap.GetLength(1); row++) {
for (int col = 0; col < tileMap.GetLength(0); col++) {
switch (tileMap[row, col]) {
case 0:
spriteBatch.Draw(Texture, new Rectangle(row * _tileWidth, col * _tileHeight, _tileWidth, _tileHeight), new Rectangle(1 * _tileWidth, 1 * _tileHeight, _tileWidth, _tileHeight), Color.Transparent);
break;
case 2:
spriteBatch.Draw(Texture, new Rectangle(row * _tileWidth, col * _tileHeight, _tileWidth, _tileHeight), new Rectangle(2 * _tileWidth, 2 * _tileHeight, _tileWidth, _tileHeight), Color.Transparent);
break;
default:
break;
}
}
The Main Class
public class Main : Microsoft.Xna.Framework.Game {
// Basic code for drawing.
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Tile test;
Texture2D texturePack;
public Main() {
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize() {
base.Initialize();
}
protected override void LoadContent() {
spriteBatch = new SpriteBatch(GraphicsDevice);
texturePack = Content.Load<Texture2D>("AxiomTileSheet");
test = new Tile(texturePack, 8, 8);
}
protected override void UnloadContent() {
}
protected override void Update(GameTime gameTime) {
if (Keyboard.GetState().IsKeyDown(Keys.Escape))
this.Exit();
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime) {
GraphicsDevice.Clear(Color.White);
spriteBatch.Begin();
test.Draw(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
}
}