All pastes #490712 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-16 05:36 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 Vector2 nextDrawPosition;
        private Color color;

        private float layer;
        private int tilesX;
        private int tilesY;
        private List<Texture2D> textureBasket;
        private GraphicsDeviceManager graphics;
        #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<Texture2D> TextureBasket
        {
            get { return textureBasket; }
            set { textureBasket = value; }
        }

        #endregion


        public void Initialize()
        {
            CalculateNumberTiles(graphics.PreferredBackBufferWidth,
                           graphics.PreferredBackBufferHeight);
            while (CalculateNumberTiles().X >= TextureBasket.Count())
            {
                TextureBasket.Add(texture);
            }
            while (CalculateNumberTiles().Y >= TextureBasket.Count())
            {
                textureBasket.Add(texture);
            }

        }

        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 currentTile to the screen 
        /// </summary>
        /// <param name="spriteBatch"></param>
        #endregion
        public void Draw(SpriteBatch spriteBatch)
        {
            #region Old
            /*
            Rectangle sourceRectangle = new Rectangle(0, 0, texture.Width, texture.Height);
            spriteBatch.Draw(texture,
                            nextDrawPosition,
                            sourceRectangle,
                            color,
                            0.0f,
                            new Vector2(0, 0),
                            1.0f,
                            SpriteEffects.None,
                            layer);
            position.X += texture.Width;
            nextDrawPosition.Y += texture.Height;

            if (nextDrawPosition.Y >= texture.Height * tilesY)
            {
                nextDrawPosition.X += texture.Width;
                nextDrawPosition.Y = 0;
            }
             */
            #endregion

            foreach (Texture2D texture in textureBasket)
            {
                Rectangle sourceRectangle = new Rectangle(0, 0, texture.Width, texture.Height);
                spriteBatch.Draw(texture,
                                nextDrawPosition,
                                sourceRectangle,
                                color,
                                0.0f,
                                new Vector2(0, 0),
                                1.0f,
                                SpriteEffects.None,
                                layer);
            }
        }
    }
}