<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[深入浅出制作全自动Mud机器人-路线规划配置]]></title><description><![CDATA[<p dir="auto">之前有提过，我的最新的机器人的路线规划都是通过HellMapManager和hellmapmanager.ts来实现的。</p>
<p dir="auto">在HMM中规划路线有3个方法</p>
<ul>
<li>APIQueryPathAny 点对点规划，对应To</li>
<li>APIQueryPathAll 多点遍历,对应Rooms</li>
<li>APIQueryPathOrdered 顺序遍历,对应Ordered</li>
</ul>
<p dir="auto">在外加一个无视地图信息的Path,就是我的地图模块的<strong>主要</strong>路径规划方式了。</p>
<p dir="auto">很明显，为了性能考虑，4种路线都是预先生成所有路径的。如果对应到导航App，就是一个大大通向的目标的绿线已经画好了。</p>
<p dir="auto">但在实际使用时，我并不会把所有路径暴露给外部。</p>
<p dir="auto">实际上，To,Rooms,Ordered,Path显示的实现了2个方法</p>
<ul>
<li>Next(move, map) 返回下一步移动的指令</li>
<li>Retry(move, map) 重试(重新规划)</li>
</ul>
<p dir="auto">正是为了实现重新规划(其实还有迷宫的因素)，所以路线规划时是一次全部生成，再分小步喂给行走模块，按需进行重新规划的。</p>
<p dir="auto">这也和主流的导航 APP的操作一致。</p>
<p dir="auto">当然，由于To,Rooms,Ordered是和当前位置相关的。</p>
<p dir="auto">为了实现重新GPS定位，调用了内建的Locate类，因此还需要接管</p>
<pre><code class="language-javascript">OnStepTimeout(move, map)
</code></pre>
<p dir="auto">这个超时类，以便定位时被拦能超时重试。</p>
]]></description><link>https://forum.hellclient.com/topic/33/深入浅出制作全自动mud机器人-路线规划配置</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 20:17:28 GMT</lastBuildDate><atom:link href="https://forum.hellclient.com/topic/33.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Feb 2026 10:03:37 GMT</pubDate><ttl>60</ttl></channel></rss>