地图寻路

本文介绍了一种基于场景配置文件的路径查找算法实现细节。通过递归遍历地图节点,该算法能够从起点出发找到通往终点的所有可能路径。适用于游戏开发中NPC寻路等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值