示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="map"></param>
        /// <param name="cell"></param>
        /// <returns></returns>
        public static double GetY(MapInstance map, int cell)
        {
            if (!CellPoints.ContainsKey(map.Cells.Count))
            {
                Pathfinding.GenerateGrid(map.Width, map.Cells.Count);
            }

            Point p = new Point();

            if (CellPoints[map.Cells.Count].TryGetValue(cell, out p))
            {
                return(p.Y);
            }

            return(-1000);
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Map"></param>
        /// <param name="Cell"></param>
        /// <returns></returns>
        public static Point GetPoint(MapInstance map, int cell)
        {
            if (CellPoints.ContainsKey(map.Cells.Count))
            {
                if (!CellPoints[map.Cells.Count].ContainsKey(cell))
                {
                    Logger.Info("Pathfinding::GetPoint unknow cell : cellId=" + cell + " cellCount=" + map.Cells.Count);
                    var point = new Point(_GetX(map.Width, cell), _GetY(map.Width, cell));
                    CellPoints[map.Cells.Count].Add(cell, point);
                    return(point);
                }
                else
                {
                    return(CellPoints[map.Cells.Count][cell]);
                }
            }

            Pathfinding.GenerateGrid(map.Width, map.Cells.Count);

            return(GetPoint(map, cell));
        }