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<Vector2> vectorBasketX = new List<Vector2>();
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<Vector2> VectorBasketX
{
get { return vectorBasketX; }
set { vectorBasketX = value; }
}
#endregion
/// <summary>
/// Ads tile positions into the list vectorBasket.
/// The amount of each is determined in CalculateNumberTiles()
/// </summary>
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));
}
}
}
/// <summary>
/// Decides the amount of tiles needed and Adds 2 tiles to the total
/// </summary>
/// <param name="screenX">Width of the screen in X (INT)</param>
/// <param name="screenY">Height of the screen in Y (INT)</param>
/// <returns>Vector2</returns>
private Vector2 CalculateNumberTiles(int screenX, int screenY)
{
tilesX = (screenX / texture.Width) + 2;
tilesY = (screenY / texture.Height) + 2;
return new Vector2(tilesX, tilesY);
}
#region Comment
/// <summary>
/// Draws the currentTiles to the screen
/// </summary>
/// <param name="spriteBatch">SpriteBatch</param>
#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);
}
}
}
}