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); } } } }
public static void Test_GetField() { LogCat.log(AStarUtil.GetField((int)Math.Pow(2, 9))); }