Ejemplo n.º 1
0
        public void UpdateFinalGrids()
        {
            this.finalGrids = grids.InitArrays(Height(), Width());
            for (int i = 0; i < grids.Length; i++)
            {
                for (int j = 0; j < grids[0].Length; j++)
                {
                    int gridType        = grids[i][j];
                    int projectGridType = projectGrids[i][j];
                    if (projectGridType == 0)                     //没有project_grid_type,则用grid_type
                    {
                        finalGrids[i][j] = gridType;
                    }
                    else
                    {
                        int field       = AStarUtil.GetField(gridType);                   //用grid_type的field
                        int terrainType = AStarUtil.GetTerrainType(projectGridType) != 0
                                                        ? AStarUtil.GetTerrainType(projectGridType)
                                                        : AStarUtil.GetTerrainType(gridType); //覆盖关系
                        int obstacleType = AStarUtil.GetObstacleType(projectGridType) != 0
                                                        ? AStarUtil.GetObstacleType(projectGridType)
                                                        : AStarUtil.GetObstacleType(gridType); //覆盖关系

                        finalGrids[i][j] = AStarUtil.ToGridType(field, terrainType, obstacleType);
                    }
                }
            }
        }
Ejemplo n.º 2
0
 public static void Test_GetField()
 {
     LogCat.log(AStarUtil.GetField((int)Math.Pow(2, 9)));
 }