【技术实现步骤摘要】
路径的搜索方法、装置、处理器和电子装置
本专利技术涉及数据处理领域,具体而言,涉及一种路径的搜索方法、装置、处理器和电子装置。
技术介绍
寻路方法用途众多,例如在游戏和地图中进行寻路。在游戏中通常会用到寻路A*方法每次从有序队列中取出优先级最高的节点,然后扩展该节点的八个邻居,直到找到目标节点为止。JPS方法每次从有序队列中取出优先级最高的点,然后扩展该点附近的跳点,直到找到目标点为止。JPS又名跳点搜索方法(JumpPointSearch),是基于Grid格子的寻路方法。JPS根据当前节点的方向、并基于跳点的策略来扩展后继节点,遵循确定强迫邻居、跳点的定义,以及确定后继节点的拓展原则,具体流程如下:一,若当前节点的当前方向是直线方向:(1)如果当前节点的左后方不可走且左方可走(即左方是强迫邻居),则沿当前节点左前方和左方寻找不在关闭节点集合的跳点;(2)如果当前节点的当前方向可走,则沿当前节点的当前方向寻找不在关闭节点集合的跳点;(3)如果当前节点的右后方不可走且右方可走(右方是强迫邻居),则沿当前节点右前方和右方寻找不在关闭节点集合的跳点;二,若当前节点的当前方向为对角线方向:(1)如果当前节点的当前方向的水平分量可走(例如当前节点的当前为东北方向,则水平分量为东),则沿当前节点的当前方向的水平分量寻找不在关闭节点集合的跳点;(2)如果当前节点的当前方向可走,则沿当前节点的当前方向寻找不在关闭节点集合的跳点;(3)如果当前节点的当前方向的垂直分量可走(例如当前节点的当前为东北方向,则垂直分量为北),则沿当前节点的当前方向的垂直分量寻找不在关闭节点集合的 ...
【技术保护点】
1.一种路径的搜索方法,其特征在于,包括:检测待寻路区域中用于表示路径起点的当前节点以及用于表示路径终点的目标节点;以所述当前节点为中心,沿多个方向查找每个方向上最长路径的终点对应的跳点,得到第一节点集合;在第一方向上查找跳点,得到第二节点集合,其中,目标节点处于所述第一方向,所述多个方向包括所述第一方向;从所述第一节点集合和所述第二节点集合的所有跳点中查找目标跳点,其中,所述当前节点到所述目标跳点之间的第一路径以及所述目标跳点到所述目标节点之间的第二路径的路径组合的路径最短;将路径最短的所述路径组合确定为所述路径起点到所述路径终点的路径。
【技术特征摘要】
1.一种路径的搜索方法,其特征在于,包括:检测待寻路区域中用于表示路径起点的当前节点以及用于表示路径终点的目标节点;以所述当前节点为中心,沿多个方向查找每个方向上最长路径的终点对应的跳点,得到第一节点集合;在第一方向上查找跳点,得到第二节点集合,其中,目标节点处于所述第一方向,所述多个方向包括所述第一方向;从所述第一节点集合和所述第二节点集合的所有跳点中查找目标跳点,其中,所述当前节点到所述目标跳点之间的第一路径以及所述目标跳点到所述目标节点之间的第二路径的路径组合的路径最短;将路径最短的所述路径组合确定为所述路径起点到所述路径终点的路径。2.根据权利要求1所述的方法,其特征在于,在第一方向上查找跳点,得到第二节点集合包括:在所述第一方向上查找中间跳点和所述中间跳点的下一级跳点;将所述下一级跳点的父节点设置为所述当前节点;将父节点为所述当前节点的所有所述下一级跳点作为所述第二节点集合。3.根据权利要求1所述的方法,其特征在于,从所述第一节点集合和所述第二节点集合中查找目标跳点包括:在所述目标跳点为所述目标节点的情况下,判断从所述当前节点到所述目标节点是否为直线路径可到达;在所述当前节点与所述目标节点之间通过直线路径不可到达的情况下,查找拐点,其中,所述当前节点与所述拐点之间为直线路径,且所述拐点与所述目标节点之间为直线路径;将查找到的拐点作为所述目标跳点。4.根据权利要求3所述的方法,其特征在于,在所述当前节点与所述目标节点之间通过直线路径不可到达的情况下,查找拐点包括:获取所述目标节点的坐标和所述当前节点的坐标在横坐标上的第一坐标差和在纵坐标上的第二坐标差;将所述第一坐标差和所述第二坐标差为坐标的节点作为所述拐点。5.根据权利要求1所述的方法,其特征在于,以所述当前节点为中心,沿多个方向查找每个方向上最长路径的终点对应的跳点,得到第一节点集合包括:以所述当前节点为中心,沿多个方向查找每个方向上离所述当前节点最近的跳点,其中,所述跳点包括边界节点和阻挡节点;将所述每个方向上的所有所述跳点集合确定为所述第一节点集合。6.根据权利要求1至5中任一项所述的方法,其特征在于,在以所述当前节点为中心,沿多个方向查找每个方向上最长路径的终点对应的跳点,得到第一节点集合之前,所述方法还包括:对所述待寻路区域内的所有节点进行编码,其中,所述编码的数据位用于表示可行进节点和不可行进节点;利用指令从所述编码中查找所述所有节点中的跳点和阻挡节点。7.根据权利要求1所述的方法,其特征在于,在以所述当前节点为中心,沿多个方向查找每个方向上最长路径的终点对应的跳点,得到第一节点集合之前,所述方法还包括:检测所述当前节点所在的当前区域和所述目标节点所在的目标区域是否在同一连通区域;以所述当前节点为中心,沿多个方向查找每个方向上最长路径的终点对应的跳点,得到第一节点集合包括:在检测出所述当前区域和所述目标区域在所述同一连通区域的情况下,以所述当前节...
【专利技术属性】
技术研发人员:王杰,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。