Beispiel #1
0
        public void Show()
        {
            var form    = new Form();
            var painter = new MapPainter();
            var map     = MapLoader.LoadMap(
                Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\..\maps\sample.json"));

            var ai        = new GreedyAi();
            var simulator = new GameSimulator(map.Map, new Settings());

            simulator.StartGame(new List <IAi> {
                ai
            });

            while (true)
            {
                var gameState = simulator.NextMove();
                painter.Map = gameState.CurrentMap;

                var panel = new ScaledViewPanel(painter)
                {
                    Dock = DockStyle.Fill
                };
                form.Controls.Add(panel);
                form.ShowDialog();
            }
        }
Beispiel #2
0
        private void changeMap(int mapid)
        {
            DataPack pack        = DataPackBook.GetPack("map");
            int      width       = pack.GetPackIndexByName("width");
            int      height      = pack.GetPackIndexByName("height");
            int      nameindex   = pack.GetPackIndexByName("name");
            int      folderindex = pack.GetPackIndexByName("url");

            selectMapSize.Width  = int.Parse(pack.data[mapid][width]);
            selectMapSize.Height = int.Parse(pack.data[mapid][height]);
            selectMapName        = pack.data[mapid][nameindex];
            selectFolder         = pack.data[mapid][folderindex];

            if (panelMap.Width == 0 || panelMap.Height == 0)
            {
                return;
            }

            baseOffside = new Point(0, 0);

            String minipath = String.Format("res/map/{0}.jpg", selectFolder);

            //if (File.Exists(minipath))
            {
                pictureBoxMiniMap.Image = MapPainter.GetNetImage(minipath);
            }

            blockInfos = new List <int>();
            RDFileInfo.GetBlockInfo(selectFolder, selectMapId, selectMapSize, blockInfos);
//            installLiveMonster();
//            installLivePlant();
            panelMap.Invalidate();
        }
Beispiel #3
0
        public static void ShowWithPath(this Map map, List <int> pathSiteIds, Future[] futures)
        {
            var form = new Form()
            {
                Text        = pathSiteIds.ToDelimitedString(" - "),
                WindowState = FormWindowState.Maximized
            };
            var mapPainter = new MapPainter
            {
                Map = map,
                PainterAugmentor = new PathAugmentor(pathSiteIds, new DefaultPainterAugmentor())
                {
                    ShowFutures = true
                },
                Futures = new Dictionary <int, Future[]> {
                    { 0, futures }
                },
            };
            var panel = new ScaledViewPanel(mapPainter)
            {
                Dock = DockStyle.Fill
            };

            form.Controls.Add(panel);
            form.ShowDialog();
        }
 void Start()
 {
     _mp =  GameObject.FindGameObjectWithTag("GameController").GetComponent<MapPainter>();
     EventTrigger t = GetComponent<EventTrigger>();
     EventTrigger.Entry entry = new EventTrigger.Entry();
     entry.eventID = EventTriggerType.PointerClick;
     entry.callback.AddListener((eventData) => _mp.SetCurrentTile(this.gameObject.name));
     t.triggers.Add(entry);
 }
Beispiel #5
0
 public void Initialize(LCG random, InteractiveDungeonObject interactiveObjectContainer, SpawnableContainer spawnKeyframes,
                        TrapContainer trapContainer, MapPainter mapPainter)
 {
     _timer  = new Timer();
     _random = random;
     _interactiveObjectContainer = interactiveObjectContainer;
     _spawnKeyframes             = spawnKeyframes;
     _trapContainer = trapContainer;
     _mapPainter    = mapPainter;
 }
    // Start is called before the first frame update
    void Start()
    {
        robot  = GameObject.Find("Robot");
        points = new List <Vector3>();
        mp     = GetComponent <MapPainter>();

        raycastSensors = robot.GetComponentsInChildren <RaycastSensor>();

        matrix = GetComponent <Matrix>();
    }
        public AreaDetailsWindow(MapPainter mapPainter, VoivodeshipNames voivodeshipName)
        {
            InitializeComponent();

            this.mapPainter      = mapPainter;
            this.voivodeshipName = voivodeshipName;

            previewFacePosition = new Point(faceCanvas.Width / 2, faceCanvas.Height / 2);
            previewFaceSize     = (int)(faceCanvas.Width / 3);

            chartPosition = new Point(chartCanvas.Width / 2, chartCanvas.Height / 2);
            chartSize     = (int)(chartCanvas.Width / 4);
        }
Beispiel #8
0
        public Bitmap GenerateImage()
        {
            CreateNodeView();

            var image = new Bitmap(Width, Height);

            using (Graphics g = Graphics.FromImage(image))
            {
                g.Clear(Color.White);
                MapPainter.DrawNode(mapNode, false, this, g);
                MapPainter.DrawNodeShape(mapNode, this, g);
            }
            return(image);
        }
Beispiel #9
0
    public void Initialize()
    {
        floors = GameObject.Find("Floor")?.GetComponent <Tilemap>();
        walls  = GameObject.Find("Walls")?.GetComponent <Tilemap>();
        pits   = GameObject.Find("Pits")?.GetComponent <Tilemap>();

        _random     = new MillerParkLCG();
        _timer      = new Timer();
        _mapPainter = new MapPainter();
        _mapPainter.Initialize(selectedDungeonData.tileSet, selectedDungeonData.pitSet, floors, walls, pits);

        _mapPopulator = new MapPopulator();
        _mapPopulator.Initialize(_random, selectedDungeonData.interactiveObjects, selectedDungeonData.spawnables, selectedDungeonData.trapSet, _mapPainter);
    }
Beispiel #10
0
        public static void Visualize(this Map map)
        {
            var form    = new Form();
            var painter = new MapPainter {
                Map = map
            };

            var panel = new ScaledViewPanel(painter)
            {
                Dock = DockStyle.Fill
            };

            form.Controls.Add(panel);
            form.ShowDialog();
        }
Beispiel #11
0
        private void initView()
        {
            initTreeViewData();

            mapPainter = new MapPainter(dataHolder);
            mapPainter.DrawAreas(mapCanvas);

            double mapScaleRateX = (mapScrollViewer.Width - 25) / mapPainter.BaseWidth;
            double mapScaleRateY = (mapScrollViewer.Height - 25) / mapPainter.BaseHeight;
            double mapScaleRate  = mapScaleRateX > mapScaleRateY ? mapScaleRateY : mapScaleRateX;

            mapCanvas.Width  *= mapScaleRate;
            mapCanvas.Height *= mapScaleRate;
            mapCanvasScaleTransform.ScaleX = mapScaleRate;
            mapCanvasScaleTransform.ScaleY = mapScaleRate;
        }
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (comboBox1.SelectedItem != null)
     {
         string path = String.Format("{0}/{1}", Tag.ToString(), comboBox1.SelectedItem.ToString());
         pictureBox1.Image = MapPainter.GetNetImage(path);
         string s = comboBox1.SelectedItem.ToString();
         if (s.Contains(".")) //.分割结构
         {
             String[] data = s.Split('.');
             url = data[0];
         }
     }
     else
     {
         pictureBox1.Image = null;
     }
 }
Beispiel #13
0
        public static void GetBlockInfo(string selectFolder, int mapid, Size mapsize, List <int> blockInfos)
        {
            int row = mapsize.Height / 34;
            int col = mapsize.Width / 48;

            string rdpath = String.Format("res/map/{0}.rd", selectFolder);

            byte[]       datas = new byte[(row * col + 1) / 2];
            MemoryStream ms    = new MemoryStream(datas);

            ZlibService.DecompressStreamToStream(MapPainter.GetNetStream(rdpath), ms);
            // ZlibService.DecompressFileToStream(rdpath, ms);
            for (int i = 0; i < (row * col + 1) / 2; i++)
            {
                blockInfos.Add(datas[i] & 15);
                blockInfos.Add((datas[i] & 240) >> 4);
            }
        }
Beispiel #14
0
        public static void Show(this Map map)
        {
            var form = new Form
            {
                WindowState = FormWindowState.Maximized
            };
            var mapPainter = new MapPainter
            {
                Map = map,
                PainterAugmentor = new DefaultPainterAugmentor(),
                Futures          = new Dictionary <int, Future[]>(),
            };
            var panel = new ScaledViewPanel(mapPainter)
            {
                Dock = DockStyle.Fill
            };

            form.Controls.Add(panel);
            form.ShowDialog();
        }
Beispiel #15
0
        private void panelMap_Paint(object sender, PaintEventArgs e)
        {
            if (selectMapId == 0 || selectMapSize.Width == 0 || selectMapSize.Height == 0)
            {
                return;
            }

            if (showSkin)
            {
                for (int i = baseOffside.X / 192; i < (baseOffside.X + panelMap.Width) / 192 + 1; i++)
                {
                    for (int j = baseOffside.Y / 192; j < (baseOffside.Y + panelMap.Height) / 192 + 1; j++)
                    {
                        string imagepath = string.Format("res/map/{0}/{1}_{2}.jpg", selectFolder, j, i);
                        //if (File.Exists(imagepath))
                        {
                            Image image = MapPainter.GetNetImage(imagepath);
                            e.Graphics.DrawImage(image, i * 192 - baseOffside.X, j * 192 - baseOffside.Y);
                            image.Dispose();
                        }
                    }
                }
            }

            if (showBarrier) //是否显示阻挡
            {
                int col = (int)Math.Floor((double)selectMapSize.Width / 48);

                int xoff = baseOffside.X % 48;
                int yoff = baseOffside.Y % 34;
                for (int x = -xoff; x < panelMap.Width + xoff; x += 48)
                {
                    for (int y = -yoff; y < panelMap.Width + yoff; y += 34)
                    {
                        Point tile = TilePixelConvertor.PixelToTile(x + baseOffside.X, y + baseOffside.Y);
                        int   val  = 1;
                        if (tile.Y >= 0 && tile.X >= 0)
                        {
                            if (tile.Y * col + tile.X >= blockInfos.Count)
                            {
                                val = 0;
                            }
                            else
                            {
                                val = blockInfos[tile.Y * col + tile.X];
                            }
                        }
                        MapPainter.DrawRectTile(e.Graphics, x, y, val);

/*                        tile = TilePixelConvertor.PixelToTile(i + 32, j + 16);
 *                      val = 1;
 *                      if (tile.Y >= 0 && tile.X >= 0)
 *                      {
 *                          if (tile.Y * col + tile.X >= blockInfos.Count)
 *                              val = 2;
 *                          else
 *                              val = blockInfos[tile.Y * col + tile.X];
 *                      }
 *                      MapPainter.DrawRectTile(e.Graphics, i - baseOffside.X + 32, j - baseOffside.Y + 16, val);*/
                    }
                }
            }

            if (false && showGridLine)
            { //show region
                int col = (int)Math.Round((double)selectMapSize.Width / 64);

                OldDataPack pack         = OldDataPackBook.GetPack("cfg_map_region");
                int         mapidindex   = pack.GetPackIndexByName("mapid");
                int         mapminxindex = pack.GetPackIndexByName("min_x");
                int         mapminyindex = pack.GetPackIndexByName("min_y");
                int         mapmaxxindex = pack.GetPackIndexByName("max_x");
                int         mapmaxyindex = pack.GetPackIndexByName("max_y");
                int         typeindex    = pack.GetPackIndexByName("type");

                List <List <String> > regions = new List <List <string> >();
                foreach (List <String> rect in pack.data.Values)
                {
                    if (int.Parse(rect[mapidindex]) == selectMapId)
                    {
                        regions.Add(rect);
                    }
                }

                Dictionary <int, bool> showname = new Dictionary <int, bool>();
                for (int i = baseOffside.X / 64 * 64; i < baseOffside.X + panelMap.Width; i += 64)
                {
                    for (int j = baseOffside.Y / 32 * 32; j < baseOffside.Y + panelMap.Height; j += 32)
                    {
                        foreach (List <String> region in regions)
                        {
                            Point tile = TilePixelConvertor.PixelToTile(i, j);
                            if (TilePixelConvertor.InRegion(int.Parse(region[mapminxindex]), int.Parse(region[mapminyindex]), int.Parse(region[mapmaxxindex]), int.Parse(region[mapmaxyindex]), tile.X, tile.Y))
                            {
                                MapPainter.DrawCircleRegion(e.Graphics, i - baseOffside.X, j - baseOffside.Y, int.Parse(region[typeindex]));

                                if (tile.X >= (int.Parse(region[mapminxindex]) + int.Parse(region[mapmaxxindex])) / 2 && tile.Y >= (int.Parse(region[mapminyindex]) + int.Parse(region[mapmaxyindex])) / 2)
                                {
                                    if (!showname.ContainsKey(int.Parse(region[0])))
                                    {
                                        Font fontSong = new Font("宋体", 14, FontStyle.Bold);
                                        e.Graphics.DrawString(region[1], fontSong, Brushes.Black, i - baseOffside.X - 10, j - baseOffside.Y - 4);
                                        fontSong.Dispose();
                                        showname.Add(int.Parse(region[0]), true);
                                    }
                                }
                            }

                            tile = TilePixelConvertor.PixelToTile(i + 32, j + 16);
                            if (TilePixelConvertor.InRegion(int.Parse(region[mapminxindex]), int.Parse(region[mapminyindex]), int.Parse(region[mapmaxxindex]), int.Parse(region[mapmaxyindex]), tile.X, tile.Y))
                            {
                                MapPainter.DrawCircleRegion(e.Graphics, i - baseOffside.X + 32, j - baseOffside.Y + 16, int.Parse(region[typeindex]));
                            }
                        }
                    }
                }
            }

            if (showGridLine) //是否显示网格
            {
                int xoff = baseOffside.X % 48;
                int yoff = baseOffside.Y % 34;
                for (int i = 1; i * 48 - xoff < panelMap.Width; ++i)
                {
                    e.Graphics.DrawLine(Pens.DarkGray, i * 48 - xoff, 0, i * 48 - xoff, panelMap.Height);
                }
                for (int i = 1; i * 34 - yoff < panelMap.Height; ++i)
                {
                    e.Graphics.DrawLine(Pens.DarkGray, 0, i * 34 - yoff, panelMap.Width, i * 34 - yoff);
                }
            }

            if (false)
            {//传送点
                OldDataPack pack         = OldDataPackBook.GetPack("cfg_map_rect");
                int         frommapindex = pack.GetPackIndexByName("from_map");
                int         fromxindex   = pack.GetPackIndexByName("from_x");
                int         fromyindex   = pack.GetPackIndexByName("from_y");
                int         tomapindex   = pack.GetPackIndexByName("to_map");

                Font fontSong = new Font("宋体", 11, FontStyle.Bold);

                foreach (List <String> rect in pack.data.Values)
                {
                    int frommap = int.Parse(rect[frommapindex]);
                    int fromx   = int.Parse(rect[fromxindex]);
                    int fromy   = int.Parse(rect[fromyindex]);
                    int tomap   = int.Parse(rect[tomapindex]);

                    Rectangle dest = new Rectangle(baseOffside.X, baseOffside.Y, panelMap.Width, panelMap.Height);
                    Point     mpos = TilePixelConvertor.TileToPixel(fromx, fromy);

                    if (selectMapId == frommap && dest.Contains(mpos))
                    {
                        Image body = Image.FromFile("icons/rect.png");
                        e.Graphics.DrawImage(body, mpos.X - baseOffside.X - body.Width / 2, mpos.Y - baseOffside.Y - body.Height / 2, body.Width, body.Height);
                        body.Dispose();

                        DataPack packm     = DataPackBook.GetPack("map");
                        int      nameindex = packm.GetPackIndexByName("name");
                        String   name      = packm.data[tomap][nameindex];
                        e.Graphics.DrawString(name, fontSong, Brushes.Black, mpos.X - baseOffside.X - 10, mpos.Y - baseOffside.Y - 4);
                        e.Graphics.DrawString(name, fontSong, Brushes.Lime, mpos.X - baseOffside.X - 11, mpos.Y - baseOffside.Y - 5);
                    }
                }

                fontSong.Dispose();
            }

            if (false && showPlant) //显示植物
            {
                OldDataPack pack         = OldDataPackBook.GetPack("cfg_map_plant");
                int         idindex      = pack.GetPackIndexByName("id");
                int         mapidindex   = pack.GetPackIndexByName("mapid");
                int         plantidindex = pack.GetPackIndexByName("plantid");
                int         xindex       = pack.GetPackIndexByName("x");
                int         yindex       = pack.GetPackIndexByName("y");

                OldDataPack mpack     = OldDataPackBook.GetPack("cfg_plant");
                int         bodyindex = mpack.GetPackIndexByName("body");

                Font fontSong = new Font("宋体", 11, FontStyle.Bold);
                foreach (List <String> plant in pack.data.Values)
                {
                    int id      = int.Parse(plant[idindex]);
                    int map     = int.Parse(plant[mapidindex]);
                    int x       = int.Parse(plant[xindex]);
                    int y       = int.Parse(plant[yindex]);
                    int plantid = int.Parse(plant[plantidindex]);

                    Rectangle dest = new Rectangle(baseOffside.X, baseOffside.Y, panelMap.Width, panelMap.Height);

                    Point mpos = TilePixelConvertor.TileToPixel(x, y);
                    if (map == selectMapId && dest.Contains(mpos))
                    {
                        string bodyurl   = mpack.data[plantid][bodyindex];
                        String imagepath = String.Format("res/entity/units/plant/{0}.png", bodyurl);
                        //Image body = MapPainter.GetNetImage(imagepath);
                        // string imagepath = string.Format("res/map/{0}/{1}_{2}.jpg", selectFolder, j, i);
                        // if (File.Exists(imagepath))
                        {
                            Image image = MapPainter.GetNetImage(imagepath); //new Bitmap(imagepath);
                            e.Graphics.DrawImage(image, mpos.X - baseOffside.X - image.Width / 2, mpos.Y - baseOffside.Y - image.Height, image.Width, image.Height);
                            //body.Dispose();
                            image.Dispose();
                        }

                        e.Graphics.DrawString(id.ToString(), fontSong, Brushes.Black, mpos.X - baseOffside.X - 10, mpos.Y - baseOffside.Y - 4);
                        e.Graphics.DrawString(id.ToString(), fontSong, Brushes.White, mpos.X - baseOffside.X - 11, mpos.Y - baseOffside.Y - 5);
                    }
                }

                fontSong.Dispose();
            }

            if (showMonster) //是否绘制怪物
            {
                int monnum = 0;

                DataPack pack                = DataPackBook.GetPack("map_monster");
                int      idindex             = pack.GetPackIndexByName("id");
                int      mapidindex          = pack.GetPackIndexByName("map_id");
                int      monstergroupidindex = pack.GetPackIndexByName("monster_group_id");
                int      xindex              = pack.GetPackIndexByName("x");
                int      yindex              = pack.GetPackIndexByName("y");

                DataPack mpack            = DataPackBook.GetPack("monster");
                int      groupindex       = mpack.GetPackIndexByName("group_id");
                int      monsterbodyindex = mpack.GetPackIndexByName("monster_body");
                int      avatarbodyindex  = mpack.GetPackIndexByName("avatar_body");

                Font fontSong = new Font("宋体", 11, FontStyle.Bold);
                foreach (List <String> mapmonster in pack.data.Values)
                {
                    int id             = int.Parse(mapmonster[idindex]);
                    int map            = int.Parse(mapmonster[mapidindex]);
                    int x              = int.Parse(mapmonster[xindex]);
                    int y              = int.Parse(mapmonster[yindex]);
                    int monstergroupid = int.Parse(mapmonster[monstergroupidindex]);

                    Rectangle dest = new Rectangle(baseOffside.X, baseOffside.Y, panelMap.Width, panelMap.Height);

                    Point mpos = TilePixelConvertor.TileToPixel(x, y);
                    if (map == selectMapId && dest.Contains(mpos))
                    {
                        foreach (List <String> monster in mpack.data.Values)
                        {
                            int groupid = int.Parse(monster[groupindex]);
                            if (groupid == monstergroupid)
                            {
                                string monsterbodyurl = monster[monsterbodyindex];
                                string avatarbodyurl  = monster[avatarbodyindex];
                                string bodyurl        = "";
                                if (monsterbodyurl.Length > 0)
                                {
                                    bodyurl = monsterbodyurl;
                                }
                                else
                                {
                                    bodyurl = avatarbodyurl;
                                }
                                String imagepath = String.Format("res/entity/monster/{0}.png", bodyurl);
                                Image  body      = MapPainter.GetNetImage(imagepath); //new Bitmap(imagepath);//
                                //if (File.Exists(imagepath))
                                {
                                    e.Graphics.DrawImage(body, mpos.X - baseOffside.X - body.Width / 2, mpos.Y - baseOffside.Y - body.Height, body.Width, body.Height);
                                    body.Dispose();
                                }
                                //body.Dispose();

                                e.Graphics.DrawString(id.ToString(), fontSong, Brushes.Black, mpos.X - baseOffside.X - 10, mpos.Y - baseOffside.Y - 4);
                                e.Graphics.DrawString(id.ToString(), fontSong, Brushes.White, mpos.X - baseOffside.X - 11, mpos.Y - baseOffside.Y - 5);

                                monnum++;
                                break;
                            }
                        }
                    }
                }

                String moncount = String.Format("当前屏怪物数:{0}", monnum);
                e.Graphics.DrawString(moncount, fontSong, Brushes.Black, 4, panelMap.Height - 19);
                e.Graphics.DrawString(moncount, fontSong, Brushes.White, 3, panelMap.Height - 20);

                fontSong.Dispose();
            }

            if (showNpc)
            {
                DataPack pack       = DataPackBook.GetPack("npc");
                int      idindex    = pack.GetPackIndexByName("id");
                int      mapidindex = pack.GetPackIndexByName("mapid");
                int      xindex     = pack.GetPackIndexByName("x");
                int      yindex     = pack.GetPackIndexByName("y");
                int      nameindex  = pack.GetPackIndexByName("name");
                int      bodyindex  = pack.GetPackIndexByName("body");

                Font fontSong = new Font("宋体", 11, FontStyle.Bold);
                foreach (List <String> npc in pack.data.Values)
                {
                    int    id      = int.Parse(npc[idindex]);
                    string map     = npc[mapidindex];
                    int    x       = int.Parse(npc[xindex]);
                    int    y       = int.Parse(npc[yindex]);
                    string bodyurl = npc[bodyindex];
                    string name    = npc[nameindex];

                    Rectangle dest = new Rectangle(baseOffside.X, baseOffside.Y, panelMap.Width, panelMap.Height);

                    Point mpos = TilePixelConvertor.TileToPixel(x, y);
                    if (map.Contains(selectMapId.ToString()) && dest.Contains(mpos))
                    {
                        String imagepath = String.Format("res/entity/npc/{0}.png", bodyurl);
                        Image  body      = MapPainter.GetNetImage(imagepath);
                        //if (File.Exists(imagepath))
                        {
                            //   Image body =new Bitmap(imagepath);
                            e.Graphics.DrawImage(body, mpos.X - baseOffside.X - body.Width / 2, mpos.Y - baseOffside.Y - body.Height, body.Width, body.Height);
                            body.Dispose();
                        }

                        e.Graphics.DrawString(id + "." + name, fontSong, Brushes.Black, mpos.X - baseOffside.X - 10, mpos.Y - baseOffside.Y - 4);
                        e.Graphics.DrawString(id + "." + name, fontSong, Brushes.White, mpos.X - baseOffside.X - 11, mpos.Y - baseOffside.Y - 5);
                    }
                }

                fontSong.Dispose();
            }

            e.Graphics.FillRectangle(Brushes.Gray, 0, 0, 4, panelMap.Height);
            e.Graphics.FillRectangle(Brushes.Gray, 0, panelMap.Height - 4, panelMap.Width, 4);
            e.Graphics.FillRectangle(Brushes.Orange, 0, baseOffside.Y * panelMap.Height / selectMapSize.Height, 4, panelMap.Height * panelMap.Height / selectMapSize.Height);
            e.Graphics.FillRectangle(Brushes.Orange, baseOffside.X * panelMap.Width / selectMapSize.Width, panelMap.Height - 4, panelMap.Width * panelMap.Width / selectMapSize.Width, 4);
        }
Beispiel #16
0
    public void PaintRegions()
    {
        MapPainter mp = new MapPainter(Elevation, seaLevel);

        Regions = mp.BuildRegions();
    }
Beispiel #17
0
        private void doubleBufferedPanel1_Paint(object sender, PaintEventArgs e)
        {
            int mid1 = GetData("m1");
            int mid2 = GetData("m2");

            if (mid1 == 0)
            {
                mid1 = mid2;
            }

            if (mid2 == 0)
            {
                mid2 = mid1;
            }


            Point pos = TilePixelConvertor.TileToPixel(GetData("x1"), GetData("y1"));

            for (int i = -1; i <= 1; i++)
            {
                for (int j = -1; j <= 1; j++)
                {
                    String imagepath = String.Format("res/map/{0}/{1}_{2}.jpg", mid1, pos.Y / 300 + j, pos.X / 300 + i);

                    Image item = MapPainter.GetNetImage(imagepath);
                    //if (File.Exists(imagepath))
                    if (item != null)
                    {
                        Image image = item;// new Bitmap(imagepath);
                        e.Graphics.DrawImage(image, (i + 1) * 80, (j + 1) * 80, 80, 80);
                        image.Dispose();
                    }
                }
            }

            e.Graphics.DrawEllipse(Pens.Red, (pos.X % 80) + 80 - 15, (pos.Y % 80) + 80 - 15, 30, 30);

            pos = TilePixelConvertor.TileToPixel(GetData("x2"), GetData("y2"));

            for (int i = -1; i <= 1; i++)
            {
                for (int j = -1; j <= 1; j++)
                {
                    String imagepath = String.Format("res/map/{0}/{1}_{2}.jpg", mid2, pos.Y / 300 + j, pos.X / 300 + i);

                    Image item = MapPainter.GetNetImage(imagepath);

                    if (item != null)
                    {
                        Image image = item;// new Bitmap(imagepath);
                        e.Graphics.DrawImage(image, (i + 1) * 80 + 240, (j + 1) * 80, 80, 80);
                        image.Dispose();
                    }
                }
            }

            e.Graphics.DrawEllipse(Pens.Red, (pos.X % 80) + 80 + 240 - 15, (pos.Y % 80) + 80 - 15, 30, 30);

            Font font = new Font("宋体", 10, FontStyle.Bold);

            e.Graphics.DrawString("出发地", font, Brushes.Black, 10, 10);
            e.Graphics.DrawString("出发地", font, Brushes.White, 9, 9);

            e.Graphics.DrawString("目的地", font, Brushes.Black, 250, 10);
            e.Graphics.DrawString("目的地", font, Brushes.White, 249, 9);
            font.Dispose();
        }
Beispiel #18
0
        private void UCGroupItem_Paint(object sender, PaintEventArgs e)
        {
            TriDataPack data = TriDataPackBook.GetPack("drop_group");

            Font font = new Font("宋体", 10, FontStyle.Regular);

            e.Graphics.DrawString(String.Format("掉落组: {0}, 累计{1}件", val, tks.Count), font, Brushes.Black, 0, 0);

            int pos = 0;

            foreach (TriData tk in tks)
            {
                int id   = int.Parse(data.data[tk][1]);
                int type = int.Parse(data.data[tk][2]);
                int pro  = int.Parse(data.data[tk][3]);

                string url  = "";
                string name = "";
                if (type == 1)
                {
                    DataPack itm   = DataPackBook.GetPack("item");
                    int      index = itm.GetPackIndexByName("icon");
                    if (!itm.data.ContainsKey(id))
                    {
                        continue;
                    }
                    url   = string.Format("res/images/icon/item/{0}.png", itm.data[id][index]);
                    index = itm.GetPackIndexByName("name");
                    name  = itm.data[id][index];
                }
                else if (type == 2)
                {
                    DataPack itm   = DataPackBook.GetPack("equip");
                    int      index = itm.GetPackIndexByName("icon");
                    if (!itm.data.ContainsKey(id))
                    {
                        continue;
                    }
                    url   = string.Format("res/images/icon/equip/{0}.png", itm.data[id][index]);
                    index = itm.GetPackIndexByName("name");
                    name  = itm.data[id][index];
                }
                else if (type == 3)
                {
                    DataPack itm   = DataPackBook.GetPack("heji_rune");
                    int      index = itm.GetPackIndexByName("icon");
                    if (!itm.data.ContainsKey(id))
                    {
                        continue;
                    }
                    url   = string.Format("res/images/icon/rune/{0}.png", itm.data[id][index]);
                    index = itm.GetPackIndexByName("name");
                    name  = itm.data[id][index];
                }

                //if (File.Exists(url))
                Image item = MapPainter.GetNetImage(url);
                e.Graphics.DrawImage(item, pos * 45 + 5, 20, 30, 30);

                e.Graphics.DrawString(String.Format("{0}", name.Substring(0, Math.Min(name.Length, 3))), font, Brushes.Black, pos * 45, 52);
                e.Graphics.DrawString(String.Format("{0}%", pro / 10), font, Brushes.Black, pos * 45 + 5, 65);

                pos++;
            }
            font.Dispose();
        }
Beispiel #19
0
        private void textBoxData_TextChanged(object sender, EventArgs e)
        {
            String[] items = textBoxData.Text.Split('|');
            int      count = 0;

            panelData.Controls.Clear();
            if (textBoxData.Text == "")
            {
                return;
            }

            try
            {
                foreach (String s in items)
                {
                    String[] itemData = s.Split(':');
                    String   path     = "";
                    String   name     = "";
                    if (int.Parse(itemData[1]) == 1 || int.Parse(itemData[1]) == 3)
                    {
                        DataPack pack      = DataPackBook.GetPack("item");
                        int      urlindex  = pack.GetPackIndexByName("icon");
                        int      nameindex = pack.GetPackIndexByName("name");
                        path = String.Format("res/images/icon/item/{0}.png", pack.data[int.Parse(itemData[0])][urlindex]);
                        name = pack.data[int.Parse(itemData[0])][nameindex];
                    }
                    else if (int.Parse(itemData[1]) == 2)
                    {
                        DataPack pack      = DataPackBook.GetPack("equip");
                        int      urlindex  = pack.GetPackIndexByName("icon");
                        int      nameindex = pack.GetPackIndexByName("name");
                        path = String.Format("res/images/icon/equip/{0}.png", pack.data[int.Parse(itemData[0])][urlindex]);
                        name = pack.data[int.Parse(itemData[0])][nameindex];
                    }
                    else if (int.Parse(itemData[1]) == 3)
                    {
                        DataPack pack      = DataPackBook.GetPack("heji_rune");
                        int      urlindex  = pack.GetPackIndexByName("icon");
                        int      nameindex = pack.GetPackIndexByName("name");
                        path = String.Format("res/images/icon/rune/{0}.png", pack.data[int.Parse(itemData[0])][urlindex]);
                        name = pack.data[int.Parse(itemData[0])][nameindex];
                    }

                    PictureBox pc = new PictureBox();
                    pc.Location = new Point((count % 2) * 90, (count / 2) * 30);
                    pc.SizeMode = PictureBoxSizeMode.Zoom;
                    pc.Width    = 20;
                    pc.Height   = 20;

                    pc.Image = MapPainter.GetNetImage(path);//Image.FromFile(path);
                    panelData.Controls.Add(pc);

                    Label lb = new Label();
                    lb.Location = new Point((count % 2) * 90 + 31, (count / 2) * 30);
                    lb.AutoSize = true;
                    lb.Text     = String.Format("{0}x{1}", name, (itemData.Length < 3 ? "1" : itemData[2]));
                    panelData.Controls.Add(lb);

                    count++;
                }

                panelData.Height = (count + 1) / 2 * 30;
            }
            catch (Exception)
            {
                panelData.Controls.Clear();

                Label lb = new Label();
                lb.Location = new Point(0, 0);
                lb.AutoSize = true;
                lb.Text     = "数据错误";
                panelData.Controls.Add(lb);

                panelData.Height = 30;
            }
        }
Beispiel #20
0
        private void UCGroupItem_Paint(object sender, PaintEventArgs e)
        {
            TriDataPack data = TriDataPackBook.GetPack("drop_group");

            Font font = new Font("宋体", 10, FontStyle.Regular);

            e.Graphics.DrawString(String.Format("物品id: {0}, 物品类型: {1}", val, type), font, Brushes.Black, 0, 0);

            int id = int.Parse(val);

            string url  = "";
            string name = "";

            if (type == 1)
            {
                DataPack itm   = DataPackBook.GetPack("item");
                int      index = itm.GetPackIndexByName("icon");
                if (!itm.data.ContainsKey(id))
                {
                    return;
                }
                url   = string.Format("res/images/icon/item/{0}.png", itm.data[id][index]);
                index = itm.GetPackIndexByName("name");
                name  = itm.data[id][index];
            }
            else if (type == 2)
            {
                DataPack itm   = DataPackBook.GetPack("equip");
                int      index = itm.GetPackIndexByName("icon");
                if (!itm.data.ContainsKey(id))
                {
                    return;
                }
                url   = string.Format("res/images/icon/equip/{0}.png", itm.data[id][index]);
                index = itm.GetPackIndexByName("name");
                name  = itm.data[id][index];
            }
            else if (type == 3)
            {
                DataPack itm   = DataPackBook.GetPack("heji_rune");
                int      index = itm.GetPackIndexByName("icon");
                if (!itm.data.ContainsKey(id))
                {
                    return;
                }
                url   = string.Format("res/images/icon/rune/{0}.png", itm.data[id][index]);
                index = itm.GetPackIndexByName("name");
                name  = itm.data[id][index];
            }

            //if (File.Exists(url))
            Image item = MapPainter.GetNetImage(url);

            if (item != null)
            {
                e.Graphics.DrawImage(item, 5, 20, 30, 30);
            }

            e.Graphics.DrawString(name, font, Brushes.Black, 52, 30);

            font.Dispose();
        }