Exemple #1
0
        public TileGrid(int tileWidth, int tileHeight, int numXTiles, int numYTiles,
			Vector2 wrldOffset, Vector2 camOffset, SpriteSheet tileSheet,
            Rectangle viewport)
        {
            sheet = tileSheet;
            width = numXTiles;
            height = numYTiles;
            cellWidth = tileWidth;
            cellHeight = tileHeight;
			originalWorldOffset = wrldOffset;
			worldOffset = wrldOffset;

            visibleTiles = new Rectangle(0, 0, width, height);

            grid = new int[width][];
            for (int i = 0; i < width; i++)
            {
                grid[i] = new int[height];
                for (int j = 0; j < height; j++)
                {
                    grid[i][j] = 0;
                }
            }

            scaleValue = 1f;
            CameraPosition = camOffset;
            displaySize.X = viewport.Width;
            displaySize.Y = viewport.Height;
            visibilityChanged = true;
        }
Exemple #2
0
        public static TileGrid Create(Rectangle viewport, Texture2D texture, int numTilesX, int numTilesY, float heightScale, Vector2? worldOffset, Vector2 cameraOffset)
        {
            var tileWidth = texture.Width;
            var tileHeight = texture.Height;

            var spriteSheet = new SpriteSheet(texture);
            spriteSheet.AddSourceSprite(1, new Rectangle(0, 0, tileWidth, tileHeight));

            if (worldOffset == null)
            {
                var worldOffsetX = -viewport.Width / 2;
                var worldOffsetY = -viewport.Height / 2;
                worldOffset = new Vector2(worldOffsetX, worldOffsetY);
            }

            var tileGrid = new TileGrid(tileWidth, tileHeight, numTilesX, numTilesY, worldOffset.Value, cameraOffset, spriteSheet, viewport) { TileScale = heightScale };
            for (int i = 0; i < numTilesX; i++)
            {
                for (int j = 0; j < numTilesY; j++)
                {
                    tileGrid.SetTile(i, j, 1);
                }
            }

            return tileGrid;
        }
Exemple #3
0
		public Button (Vector2 position, Vector2 size, Texture2D texture)
		{
			_position = position;
			_size = size;
            _center = position + size / 2f;
			_spriteSheet = new SpriteSheet (texture);

			var columns = 3;
			var padding = 1;

			var spriteSizeY = texture.Height;
			var spriteSizeX = (texture.Width - padding * (columns - 1)) / columns;

			for (int x = 0; x < columns; x++)
			{
				int left = (int)(x * (spriteSizeX + padding));
				int top = 0;

				_spriteSheet.AddSourceSprite(x, new Rectangle(left, top, spriteSizeX, spriteSizeY));
			}

            _textureScale = _size.X / SourceRectangle.Width;
		}