地图寻路

public static BaseVo findMapPath(int start, int end)
{
config = ConfigManager.getInstance().getMiniJson("scene") as Dictionary<string,object>;
List<object> list = new List<object>();
list.Add(new List<int>(){start});
List<int> item;
int count = 0;
while(list.Count > 0){
if(count++ > 1000) break;
item = list[0] as List<int>;
list.RemoveAt(0);
List<object> exits = JsonUtil.getMiniObject(config,item[item.Count-1]+".exits") as  List<object>;
if(exits == null)
return null;
foreach(object exit in exits){
int exitId = JsonUtil.getInt(exit,"id");
if(exitId == end){
item.RemoveAt(0);
item.Add(exitId);
return getExitPoint(item[0]);
}
//scene = GlobalVar.definitions.scene[exitId];
if(item.IndexOf(exitId) == -1){
  List<int> add = new List<int>();
for(int i=0; i<item.Count; i++){
add.Add(item[i]);
}
add.Add(exitId);
list.Add(add);
}
}
}
return null;
}


从一点出发,获取所有出口
加在列表里面
不断循环
如果发现有重复即不要

猜你喜欢

转载自blog.csdn.net/a133900029/article/details/79994338