Beispiel #1
0
        public TreeCheckBoxNode(ObjectLayer.GameObject gameObject, ObjectLayer layer)
        {
            this.gameObject = gameObject;
            this.layer      = layer;

            this.Text = gameObject.name;
            this.Name = "" + gameObject.gid;
        }
Beispiel #2
0
        public void rebuildObjectLayerImage(ObjectLayer layer)
        {
            layer.image.Dispose();

            int width  = mapWidth * tileWidth;
            int height = mapHeight * tileHeight;

            Image    img = new Bitmap(width, height, PixelFormat.Format32bppPArgb);
            Graphics g   = Graphics.FromImage(img);

            foreach (ObjectLayer.GameObject gameObj in layer.gameObjects)
            {
                if (gameObj.display)
                {
                    if (gameObj.gid == -1)
                    {
                        g.DrawRectangle(Pens.Firebrick, gameObj.getRect());
                    }
                    else
                    {
                        g.DrawImage(imageDict[gameObj.gid],
                                    new Point(gameObj.x, gameObj.y));
                    }
                }
            }

            if (!Directory.Exists(layerImageDir))
            {
                Directory.CreateDirectory(layerImageDir);
            }
            String outputFileName = layerImageDir + name + "_" + layer.getName() + " Layer.png";

            using (MemoryStream memory = new MemoryStream()) {
                using (FileStream fs = new FileStream(outputFileName, FileMode.Create, FileAccess.ReadWrite)) {
                    img.Save(memory, ImageFormat.Png);
                    byte[] bytes = memory.ToArray();
                    fs.Write(bytes, 0, bytes.Length);
                }
            }

            layer.image = Image.FromFile(outputFileName);
            g.Dispose();
            img.Dispose();
        }
Beispiel #3
0
        private void loadLayerData()
        {
            layers = new List <Layer>();

            foreach (XmlNode node in tmx.GetElementsByTagName("map")[0].ChildNodes)
            {
                switch (node.Name)
                {
                case "layer":
                    layers.Add(new TileLayer(node));
                    break;

                case "objectgroup":
                    ObjectLayer newLayer = new ObjectLayer(node);
                    layers.Add(newLayer);
                    if (newLayer.name == "NPC")
                    {
                        NPCLayer = newLayer;
                    }
                    break;
                }
            }
        }