Exemplo n.º 1
0
 public Space this[RoomPoint point]
 {
     get
     {
         return(m_spaces[point.Y, point.X]);
     }
 }
Exemplo n.º 2
0
 public bool IsExist(RoomPoint point)
 {
     if (point.X < 0 || point.X >= Width)
     {
         return(false);
     }
     else if (point.Y < 0 || point.Y >= Height)
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 3
0
        private IList <Space> GetNeighborsProcess(RoomPoint location)
        {
            IList <Space> spaces = new List <Space>(8);
            var           points = CreatePossibleNeighborsPoints(location);

            foreach (var point in points)
            {
                if (IsExist(point))
                {
                    spaces.Add(this[point]);
                }
            }
            return(spaces);
        }
Exemplo n.º 4
0
 private RoomPoint[] CreatePossibleNeighborsPoints(RoomPoint point)
 {
     RoomPoint[] result = new RoomPoint[8];
     //index 0-2的point
     for (int i = -1; i <= 1; ++i)
     {
         result[i + 1] = new RoomPoint(point.X + i, point.Y - 1);
     }
     result[3] = new RoomPoint(point.X + 1, point.Y);
     //index 4-6
     for (int i = -1; i <= 1; ++i)
     {
         result[5 + i] = new RoomPoint(point.X - i, point.Y + 1);
     }
     result[7] = new RoomPoint(point.X - 1, point.Y);
     return(result);
 }
Exemplo n.º 5
0
 internal Space(RoomPoint loc)
 {
     m_units  = new UnitCollection();
     Location = loc;
 }
Exemplo n.º 6
0
 /// <summary>
 /// 获取与该点相邻的Space集合,包括斜线相邻
 /// </summary>
 /// <param name="location"></param>
 /// <returns></returns>
 public IEnumerable <Space> GetNeighbors(RoomPoint location)
 {
     return(GetNeighborsProcess(location));
 }
Exemplo n.º 7
0
 public RoomPointF(RoomPoint point)
 {
     m_vector = point.Coefficients.Clone();
 }
Exemplo n.º 8
0
 public Space CreateSpace(RoomPoint loc)
 {
     return(new Space(loc));
 }