using System; using System.Collections.Generic; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; namespace Tiles { class Tile { private Texture2D texture; private Vector2 position; private Color color; private float layer; private int tilesX; private int tilesY; private List vectorBasketX = new List(); private List vectorBasketY = new List(); private int positionX = 0; private int positionY = 1; private bool isFullWindow; #region Properties public Texture2D Texture { get { return texture; } set { texture = value; } } public Vector2 Position { get { return position; } set { position = value; } } public Color Color { get { return color; } set { color = value; } } public float Layer { get { return layer; } set { layer = value; } } public List VectorBasketX { get { return vectorBasketX; } set { vectorBasketX = value; } } #endregion /// /// Ads tile positions into the list vectorBasket. /// The amount of each is determined in CalculateNumberTiles() /// public void Initialize() { for (int i = 0; i <= CalculateNumberTiles(1024, 768).X; i++) { for (int I = 0; I <= CalculateNumberTiles(1024, 768).Y; I++) { positionX = texture.Width * i; positionY = texture.Height * I; vectorBasketX.Add(new Vector2(positionX, positionY)); vectorBasketY.Add(new Vector2(positionX, positionY)); } } } /// /// Decides the amount of tiles needed and Adds 2 tiles to the total /// /// Width of the screen in X (INT) /// Height of the screen in Y (INT) /// Vector2 private Vector2 CalculateNumberTiles(int screenX, int screenY) { tilesX = (screenX / texture.Width) + 2; tilesY = (screenY / texture.Height) + 2; return new Vector2(tilesX, tilesY); } #region Comment /// /// Draws the currentTiles to the screen /// /// SpriteBatch #endregion public void Draw(SpriteBatch spriteBatch) { foreach (Vector2 position in vectorBasketX) { Rectangle sourceRectangle = new Rectangle(0, 0, texture.Width, texture.Height); spriteBatch.Draw(texture, position, sourceRectangle, color, 0.0f, new Vector2(0, 0), 1.0f, SpriteEffects.None, layer); } foreach (Vector2 position in vectorBasketY) { Rectangle sourceRectangle = new Rectangle(0, 0, texture.Width, texture.Height); spriteBatch.Draw(texture, position, sourceRectangle, color, 0.0f, new Vector2(0, 0), 1.0f, SpriteEffects.None, layer); } } } }