代码改变世界

跨地图寻路 和 NPC追踪(一. 数据配置)

2010-09-15 01:11  平凡主义  阅读(842)  评论(0编辑  收藏  举报

  在RPG 游戏中A Start 用到最多的寻路算法,但是在做任务的时候却无法实现场景寻路,为了这个网上找了很久都没有找到。所以只有自己写一个了。

   首先需要将场景中的传送门的数据得到我定义的格式是这样的。当然这个数据结构在实际操作中应该是通过生成得到。

地图传送门信息 MapInfo.xml
1 <?xml version="1.0" encoding="utf-8" ?>
2  <Maps>
3 <Map Id ="1">
4 <Door Id="1" MapId="1" TargetMapId="2" x="11" y="22" />
5 <Door Id="2" MapId="1" TargetMapId="3" x="22" y="32" />
6 <Door Id="3" MapId="1" TargetMapId="4" x="54" y="34" />
7 </Map>
8 <Map Id ="2">
9 <Door Id="5" MapId="2" TargetMapId="1" x="42" y="12" />
10 <Door Id="4" MapId="2" TargetMapId="5" x="54" y="21" />
11
12 </Map>
13 <Map Id ="3">
14 <Door Id="6" MapId="3" TargetMapId="6" x="32" y="14" />
15 <Door Id="7" MapId="3" TargetMapId="1" x="54" y="23" />
16 </Map>
17 <Map Id ="4">
18 <Door Id="8" MapId="4" TargetMapId="7" x="65" y="21" />
19 <Door Id="9" MapId="4" TargetMapId="1" x="32" y="42" />
20 </Map>
21 <Map Id ="5">
22 <Door Id="10" MapId="5" TargetMapId="6" x="64" y="23" />
23 </Map>
24 <Map Id ="6">
25 <Door Id="11" MapId="6" TargetMapId="7" x="34" y="65" />
26 </Map>
27 <Map Id ="7">
28 <Door Id="12" MapId="7" TargetMapId="8" x="23" y="24" />
29 </Map>
30 <Map Id ="8">
31 <Door Id="13" MapId="8" TargetMapId="7" x="23" y="24" />
32 </Map>
33  </Maps>

 

第二步 得到世界NPC信息

 

世界Npc 信息 NpcInfo.xml
<?xml version="1.0" encoding="utf-8" ?>
<Maps>
<Map Id ="1">
<Door Id="1" MapId="1" TargetMapId="2" x="11" y="22" />
<Door Id="2" MapId="1" TargetMapId="3" x="22" y="32" />
<Door Id="3" MapId="1" TargetMapId="4" x="54" y="34" />
</Map>
<Map Id ="2">
<Door Id="5" MapId="2" TargetMapId="1" x="42" y="12" />
<Door Id="4" MapId="2" TargetMapId="5" x="54" y="21" />

</Map>
<Map Id ="3">
<Door Id="6" MapId="3" TargetMapId="6" x="32" y="14" />
<Door Id="7" MapId="3" TargetMapId="1" x="54" y="23" />
</Map>
<Map Id ="4">
<Door Id="8" MapId="4" TargetMapId="7" x="65" y="21" />
<Door Id="9" MapId="4" TargetMapId="1" x="32" y="42" />
</Map>
<Map Id ="5">
<Door Id="10" MapId="5" TargetMapId="6" x="64" y="23" />
</Map>
<Map Id ="6">
<Door Id="11" MapId="6" TargetMapId="7" x="34" y="65" />
</Map>
<Map Id ="7">
<Door Id="12" MapId="7" TargetMapId="8" x="23" y="24" />
</Map>
<Map Id ="8">
<Door Id="13" MapId="8" TargetMapId="7" x="23" y="24" />
</Map>
</Maps>