All pastes #589799 Raw Edit

Unnamed

public text v1 · immutable
#589799 ·published 2007-06-26 06:07 UTC
rendered paste body
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 List<Vector2> vectorBasketY = 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));
                    vectorBasketY.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);
            }
            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);
            }
        }
    }
}