Exemple #1
0
        void CreateSourceRectangles()
        {
            sourceRects.Clear();
            currentSourceIndex = 0;

            TileLayerDeffination layer = tileMap.GetByOrder(layerIndex);

            int columns = layer.Columns;
            int rows    = layer.Rows;

            if (tileSheet == null)
            {
                tileSheet = Common.ContentBuilder.Load <Texture2D>(
                    layer.TileSheetFilepath);
            }

            int width  = tileSheet.Width / columns;
            int height = tileSheet.Height / rows;

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

            for (int y = 0; y < rows; y++)
            {
                for (int x = 0; x < columns; x++)
                {
                    sourceRects.Add(rect);

                    rect.X += width;
                }

                rect.X  = 0;
                rect.Y += height;
            }
        }
Exemple #2
0
        void TilesChangeClicked(string controlID)
        {
            TileLayerDeffination layer = tileMap.GetByOrder(currentLayer);

            switch (controlID)
            {
            case "btnTilesXPlus":
            {
                int parse = int.Parse(txtTilesX.Text);
                parse++;

                txtTilesX.Text = parse + "";
                layer.UpdateTiles(parse, true);
            }
            break;

            case "btnTilesXMinus":
            {
                int parse = int.Parse(txtTilesX.Text);
                parse--;

                if (parse >= 0)
                {
                    txtTilesX.Text = parse + "";
                    layer.UpdateTiles(parse, true);
                }
            }
            break;

            case "btnTilesYPlus":
            {
                int parse = int.Parse(txtTilesY.Text);
                parse++;

                txtTilesY.Text = parse + "";
                layer.UpdateTiles(parse, false);
            }
            break;

            case "btnTilesYMinus":
            {
                int parse = int.Parse(txtTilesY.Text);
                parse--;

                if (parse >= 0)
                {
                    txtTilesY.Text = parse + "";
                    layer.UpdateTiles(parse, false);
                }
            }
            break;
            }
        }
Exemple #3
0
        public MapCreationGrid(string id, Screen menu,
                               int layerIndex, ref TileMapDeffination tileMap)
            : base(id, menu)
        {
            bounds = new Rectangle(
                0, 0, 826, (int)Common.TextureQuality.Y);

            this.layerIndex = layerIndex;
            this.tileMap    = tileMap;

            TileLayerDeffination layer = tileMap.GetByOrder(layerIndex);

            if (layer.Tiles == null)
            {
                layer.Tiles = new List <int[]>();
                layer.Tiles.Add(new int[] { -1 });

                layer.TileOffset = Vector2.One;
            }
            else
            {
                loaded = true;
            }

            grid = new Grid(ID + "Grid", Vector2.Zero, layer.Tiles[0].Length,
                            layer.Tiles.Count, (int)layer.TileSize.X,
                            (int)layer.TileSize.Y, 1, false);

            AttachComponent(grid);

            DrawingManager.Add(this);
        }