首页 / 专利库 / 电信 / 节点 / 子节点 / 一种最佳路径获取方法、装置、设备及存储介质

一种最佳路径获取方法、装置、设备及存储介质

阅读:183发布:2024-01-22

专利汇可以提供一种最佳路径获取方法、装置、设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种最佳路径获取方法、装置、设备及存储介质,具体地,所述方法包括:获取地图信息;根据所述目标点和所述中间 节点 ,得到多个后端路径;对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;根据所述起始点和所述中间节点,得到多个前端路径;根据所述前端路径,确定出所述多边形阻挡物上与所述起始点最近的第二有效节点;根据信息对照表依次匹配得到,所述第二有效节点到所述第一有效节点之间的所有其他有效节点;将所述第二有效节点、匹配得到的所有其他有效节点、第一有效节点组成的路径,作为所述起始点到所述目标点之间的最佳路径。本发明在不能达到目标点的情况下给出了给出最接近的最优路径。,下面是一种最佳路径获取方法、装置、设备及存储介质专利的具体信息内容。

1.一种最佳路径获取方法,其特征在于,所述方法包括:
获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点
根据所述目标点和所述中间节点,得到多个后端路径;
对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;
根据所述起始点和所述中间节点,得到多个前端路径;
根据所述前端路径,确定出所述多边形阻挡物上与所述起始点最近的第二有效节点;
根据信息对照表依次匹配得到,所述第二有效节点到所述第一有效节点之间的所有其他有效节点;
将所述第二有效节点、匹配得到的所有其他有效节点、第一有效节点组成的路径,作为所述起始点到所述目标点之间的最佳路径;
所述信息对照表的生成方法,包括:
选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
从多个第一距离中比较得到第一最短距离;
将所述多边形阻挡物的第二目标节点作为第一目标节点;根据得到所述第一最短距离的方式,获得所述第二目标节点对应的第二最短距离;
依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离;
由所有的中间节点以及分别对应的最短距离,生成所述信息对照表。
2.根据权利要求1所述的最佳路径获取方法,其特征在于,所述对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;包括:
将所述后端路径放入第一线段列表中;并根据所述后端路径,确定出第一最小后端路径;
判断所述第一最小后端路径是否与所述多边形阻挡物相重叠,若是,则将所述第一最小后端路径从所述第一线段列表中删除,得到第二线段列表;
将所述第二线段列表作为第一线段列表,得到对应的第二最小后端路径,并进行第二最小后端路径的确定和判断;
依次遍历至得到与所述多边形阻挡物不相重叠的最小后端路径,所述最小后端路径为所述第一有效线段;
根据所述第一有效线段确定出所述第一有效节点。
3.根据权利要求2所述的最佳路径获取方法,其特征在于,所述对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;还包括:
在所有的后端路径全部遍历后,不存在与所述多边形阻挡物不相重叠的最小后端路径时,将所述第一最小后端路径对应的中间节点设定为预测目标点;
其中,所述预测目标点与所述第一有效节点重合。
4.一种最佳路径获取装置,其特征在于,所述装置包括:
地图信息获取模,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
第一线段列表获取模块,用于根据所述目标点和所述中间节点,得到多个后端路径;
第一有效节点获取模块,用于对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;
第二前端路径获取模块,用于根据所述起始点和所述中间节点,得到多个前端路径;
第二有效节点获取模块,用于根据所述前端路径,确定出所述多边形阻挡物上与所述起始点最近的第二有效节点;
其余有效节点获取模块,用于根据信息对照表依次匹配得到,所述第二有效节点到所述第一有效节点之间的所有其他有效节点;
最佳路径获取模块,用于将所述第二有效节点、匹配得到的所有其他有效节点、第一有效节点组成的路径,作为所述起始点到所述目标点之间的最佳路径;
所述其余有效节点获取模块包括信息对照表生成单元;
所述信息对照表生成单元包括:
第一目标节点选取子单元,用于选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
第一距离计算子单元,用于计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
对应中间节点得到子单元,用于将多个第一距离进行比较,得到第一最短距离以及所述第一最短距离另一端对应的中间节点;
对应信息得到子单元,用于将所述多边形阻挡物的第二目标节点作为第一目标节点;
根据得到所述第一最短距离和对应中间节点的方式,获得所述第二目标节点对应的第二最短距离和相应的中间节点;
其他信息得到子单元,用于依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离以及与对应最短距离相应的中间节点;
信息对照表生成子单元,用于由所有的中间节点、对应的最短距离,以及对应最短距离相应的中间节点,生成所述信息对照表。
5.根据权利要求4所述的最佳路径获取装置,其特征在于,所述第一有效节点获取模块;包括:
第一最小后端路径获取单元,用于将所述后端路径放入第一线段列表中;并根据所述后端路径,确定出第一最小后端路径;
第二线段列表获取单元,用于判断所述第一最小后端路径是否与所述多边形阻挡物相重叠,若是,则将所述第一最小后端路径从所述第一线段列表中删除,得到第二线段列表;
确定判断单元,用于将所述第二线段列表作为第一线段列表,得到对应的第二最小后端路径,并进行第二最小后端路径的确定和判断;
第一有效线段获取单元,用于依次遍历至得到与所述多边形阻挡物不相重叠的最小后端路径,所述最小后端路径为所述第一有效线段;
第一有效节点确定单元,用于根据所述第一有效线段确定出所述第一有效节点。
6.根据权利要求5所述的最佳路径获取装置,其特征在于,所述第一有效节点获取模块;还包括:
预测目标点指定单元,用于在所有的后端路径全部遍历后,不存在与所述多边形阻挡物不相重叠的最小后端路径时,将所述第一最小后端路径对应的中间节点设定为预测目标点;
其中,所述预测目标点与所述第一有效节点重合。
7.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-3任一所述的最佳路径获取方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-3任一所述的最佳路径获取方法。

说明书全文

一种最佳路径获取方法、装置、设备及存储介质

技术领域

[0001] 本发明涉及路径规划技术领域,尤其涉及一种最佳路径获取方法、装置、设备及存储介质。

背景技术

[0002] 随着移动智能终端的性能的提升,越来越多的2D MMORPG(色扮演类)游戏在移动终端上出现;其中,大部分游戏在处理角色移动部分都采用了A*寻路算法,通过A*算法能够计算出从A点(角色点)到B点(目标点)的最短路径,之后使得游戏内的角色按照得到的最短路径进行一步一步的移动。
[0003] 但目前来说,用于进行寻路的A*算法,每次寻路路径的计算耗时会过长,对应客户端反应较慢,从而影响用户的体感受;并且,对于不能到达目标点的情况并没有给出有效的解决方案;其中,在用户操作的游戏场景下,如果不能到达目标点这将给用户带来了很大的体验落差,会明显降低用户的体验感受。
[0004] 因此,需要提供一种更高效地帮助寻找最佳路径的方案。

发明内容

[0005] 为了解决现有技术中的问题,本发明提供了一种最佳路径获取方法、装置、设备及存储介质,具体地:
[0006] 一方面提供了一种最佳路径获取方法,所述方法包括:
[0007] 获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点
[0008] 根据所述目标点和所述中间节点,得到多个后端路径;
[0009] 对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;
[0010] 根据所述起始点和所述中间节点,得到多个前端路径;
[0011] 根据所述前端路径,确定出所述多边形阻挡物上与所述起始点最近的第二有效节点;
[0012] 根据信息对照表依次匹配得到,所述第二有效节点到所述第一有效节点之间的所有其他有效节点;
[0013] 将所述第二有效节点、匹配得到的所有其他有效节点、第一有效节点组成的路径,作为所述起始点到所述目标点之间的最佳路径。
[0014] 另一方面提供了一种最佳路径获取装置,所述装置包括:
[0015] 地图信息获取模,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
[0016] 第一线段列表获取模块,用于根据所述目标点和所述中间节点,得到多个后端路径;
[0017] 第一有效节点获取模块,用于对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;
[0018] 第二前端路径获取模块,用于根据所述起始点和所述中间节点,得到多个前端路径;
[0019] 第二有效节点获取模块,用于根据所述前端路径,确定出所述多边形阻挡物上与所述起始点最近的第二有效节点;
[0020] 其余有效节点获取模块,用于根据信息对照表依次匹配得到,所述第二有效节点到所述第一有效节点之间的所有其他有效节点;
[0021] 最佳路径获取模块,用于将所述第二有效节点、匹配得到的所有其他有效节点、第一有效节点组成的路径,作为所述起始点到所述目标点之间的最佳路径。
[0022] 另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上面多个方面所述的任一个最佳路径获取方法。
[0023] 另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上面多个方面所述的任一个最佳路径获取方法。
[0024] 本发明提供的一种最佳路径获取方法、装置、设备及存储介质,具有的有益效果为:
[0025] 本发明将所述起始点和预测目标点分开独立的分别寻路到达所述多边形阻挡物的最近路径,然后再结合所述多边形阻挡物之间的最优路径,省去了一个节点一个节点去搜索路径的繁琐和耗时,从而节省了运算程序和时间,提升了最优路径的获取效率;本发明通过确定出与目标点对应的有效节点,帮助游戏角色寻找到最优的路径;提升用户的体验感受,提升了对应客户端的用户粘度附图说明
[0026] 为了更清楚地说明本说明书实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0027] 图1是本发明实施例提供的实施环境的示意图;
[0028] 图2是本发明实施例提供的一种最佳路径获取方法流程图
[0029] 图3是本发明实施例提供的用于展示多边形阻挡物的一个示例图;
[0030] 图4是本发明实施例提供的对所述后端路径进行有效判断,根据判断结果确定出第一有效节点的步骤流程图;
[0031] 图5是本发明实施例提供的信息对照表的生成方法流程图;
[0032] 图6是本发明实施例提供的信息对照表的生成方法判断流程图;
[0033] 图7是本发明实施例提供的一种最佳路径获取装置示意图;
[0034] 图8是本发明实施例提供的信息对照表生成单元的组成框图
[0035] 图9是本发明实施例提供的第一有效节点获取模块的组成框图;
[0036] 图10是本发明实施例提供的一种最佳路径获取设备的结构示意图。

具体实施方式

[0037] 下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0039] 现有技术中,对于目标点不能达到的情形并没有给出有效的解决方案,对此,本发明提出了一种最佳路径获取的方案,用于2D MMORGP手机游戏或相似游戏中,不仅省去了一个节点一个节点的计算,还能够在不能达到目标点的情况下,从目标点开始预测,为真实的目标点得到一个最优的路径,作为起始点与目标点的最优路径,帮助游戏角色尽可能地接近真实的目标点。
[0040] 如图1所示,其示出了本说明书实施例提供的实施环境的示意图。该实施环境包括:服务器02和与该服务器02进行信息通信的终端01。
[0041] 终端01可以为手机、平板电脑、膝上型便携获取机、PAD或台式获取机等等。终端01中运行有客户端,例如,终端01中运行的客户端可以为游戏客户端或类似功能的交互客户端。服务器02可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者是一个获取服务中心。服务器02通过网络与终端01建立通信连接。
[0042] 具体地,本发明实施例提供了一种最佳路径获取方法,如图2所示,所述方法包括:
[0043] S1002.获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
[0044] 所述多边形阻挡物为障碍物的虚拟的多边形区域,并不呈现在客户端界面上;如图3所示,其中的黑色三角形为障碍物的情况下,图3中黑色三角形外围的虚线图形为该障碍物对应的多边形区域,如果对于起始点达到目标点的地图中只有这一个障碍物,则此时,这个虚线区域即为所述多边形阻挡物。
[0045] 其中获取地图信息中的多边形阻挡物的信息,包括:
[0046] 根据起始点的信息、目标点的信息
[0047] 根据所述起始点的信息和目标点的信息,得到起始点到达目标点中间障碍物的信息;
[0048] 根据障碍物的信息获取到对应的多边形阻挡物的信息。
[0049] 比如,游戏界面上游戏角色A要到达目标点B中间具有的障碍物。其中,所述起始点就是在场景中为角色A对应的位置,所述目标点就是在场景中角色A想要到达的位置B;比如在游戏界面上用户操作其在游戏中的角色A,通过点击触摸屏上的位置B,控制对应的游戏角色A到达的位置B。
[0050] 在应用场景中会有很多的障碍物;对于具有连接关系的两个障碍物,在地图上可以是两个独立的多边形区域;对于紧挨或是有交接的两个障碍物,在地图上可以是一个多边形区域。
[0051] 本实施例中的多边形阻挡物的信息包含有多个多边形区域,每个多边形区域又具有多个中间节点.
[0052] 其中,在步骤S1002之前,可以包括:判断是否读取到多边形阻挡物的信息,若没有读取到,说明地图信息中还没有所述多边形阻挡物的信息,则按照预设规则划定出所述多边形阻挡物对应的区域,并保存在地图信息中。其中,所述多边形阻挡物对应的区域,为包含所述起始点到所述目标点之间的所有障碍物的面积区域。
[0053] 若障碍物为独立的障碍物来说,所述多边形阻挡物就是所有独立障碍物的所在的区域面积之和;若既具有独立的障碍物,又具有相连的障碍物,则所述多边形阻挡物就是独立障碍物的所在的区域面积与相连的障碍物所在的区域面积之和。
[0054] 具体地,按照预设规则划定出所述多边形阻挡物对应的区域就是按照预设规则划定出对应的障碍物所在的区域面积,对于独立的障碍物划定出所述独立障碍物对应的面积,对于相连的障碍物划定出相连的障碍物对应的面积。所述预设规则可以为:
[0055] 获取当前障碍物的真实形状,以及所述真实形状内部具有的最长内线段;
[0056] 以所述最长内线段的中点为圆心,以所述最长内线段为直径划定一个用于包含所述真实形状的内扩圆;
[0057] 将所述内扩圆平均分为四份,为四个相同的圆弧;
[0058] 从每一份内扩圆中确定出距离对应的圆弧最近的第一障碍物顶点
[0059] 比如,以为其中一个圆弧为例,该圆弧具有两个顶点,第一圆弧顶点和第二圆弧顶点;这两个顶点与所述第一障碍物顶点对应出第一线段和第二线段;
[0060] 判断所述第一线段或/和所述第二线段是否与所述多边形阻碍物重叠;
[0061] 若所述第一线段和所述第二线段与所述障碍物均不重叠,则所述第一障碍物顶点就是用于组成所述多边形阻挡物对应区域的一个点,所述第一线段和第二线段为所述多边形阻挡物的其中的两个边。
[0062] 若存在重叠的情况,比如所述第一线段与所述障碍物重叠,则找到所述第一障碍物顶点与距离较近的圆弧顶点(比如是第一圆弧顶点)之间距离所述圆弧最近的第二障碍物顶点,则所述第一圆弧顶点、第二障碍物顶点和第一障碍物顶点之间对应出两条线段,第三线段和第四线段;
[0063] 判断所述第三线段或/和第四线段是否与所述多边形阻碍物重叠;
[0064] 若第三线段或是第四线段存在与所述多边形阻碍物重叠的情况,则按照上述获取第二障碍物顶点的方式,去获取对应的第三障碍物顶点;直至出现的障碍物顶点与对应的圆弧顶点和其他障碍物顶点能够将相应部分的多边形阻碍物包含进来;此时,这中间的线段属于多边形阻挡物的虚拟边。
[0065] 在第二线段重叠的情况下,按照上述分析第一线段的方式得到相应部分的障碍物对应的多边形阻挡物的边。
[0066] 同样地,其他圆弧使用同样的方式去获取相应部分的障碍物对应的多边形阻挡物的边。
[0067] 以上得到的所有的多边形阻挡物的边组成了该多边形阻挡物,从而将所述障碍物包含进来。
[0068] 其他的独立障碍物或是相连障碍物也是同样预设的规则进行获取。
[0069] S1004.根据所述目标点和所述中间节点,得到多个后端路径;
[0070] 本实施例中从目标点开始算起,能够解决从起始点不能正常到达目标点的情况。具体地,先是根据所述目标点与多边形阻挡物的中间节点的信息,每个中间节点与所述目标点点之间会对应一个路径,即本实施例中的后端路径,其中将这些后端路径进行组合得到第一线段列表。
[0071] S1006.对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;
[0072] 一种具体地实施方式中,步骤S1006对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;如图4所示,包括:
[0073] S1202.将所述后端路径放入第一线段列表中;并根据所述后端路径,确定出第一最小后端路径;
[0074] 具体地,将多个后端路径进行比较,确定出最小的后端路径,即实施例中的第一最小后端路径。
[0075] S1204.判断所述第一最小后端路径是否与所述多边形阻挡物相重叠,若是,则将所述第一最小后端路径从所述第一线段列表中删除,得到第二线段列表;
[0076] 步骤S1204中判断所述第一最小后端路径是否与所述多边形阻挡物相重叠具体地,该判断过程可以通过以下方式实现,
[0077] (1)获取当前第一最小后端路径对应起始点坐标和对应的中间节点的坐标;
[0078] 比如目标点B(x3.y3)和中间节点D1(x4.y4);其中,当前第一最小后端路径对应的线段是由很多个像素点组成;
[0079] (2)通过坐标计算得到起始点和对应的中间节点之间的距离,获得对应线段的第一长度(比如为L);
[0080] (3)根据将一个单位长度切割成n个小节点的方式,得到第一长度分隔为N=L*n;
[0081] (4)根据数量N、起始点坐标和对应的中间节点的坐标,得到两点之间的所有的小节点的坐标;
[0082] 比如,根据一个单位长度切割成10个小节点的方式,将长度L分隔为N断,N=L*10;
[0083] 按照x3+(x4-x3)/n和y3+(y4-y3)/n,从起始点开始计算出B和D1两点间所有小节点的坐标,其中,n=12345……。
[0084] (5)获取地图上的原始像素值,也就是小节点在地图上的原始像素值(6)将呈现出来的小节点的像素值与原始像素值进行比较,判断是否发生变化;若是,则进一步对相应单位长度中的其他小节点呈现的像素值进行判断,
[0085] (7)在对应的单位长度下的小节点的像素值都发生了变化时,则说明该单位长度对应的路径与多边形阻挡物发生了重叠。
[0086] 比如,给与小节点的原始像素值为原生红色对应的像素值,给与多边形阻挡物的像素为黑色对应的像素,则在原生红色与黑色重叠后,此时的颜色会变为紫色,通过这种像素值的变化能够判断出当前小节点是否与多边形阻挡物重叠。进一步判断对应的单位长度上的其他小节点是否发生变化,在整个单位长度中的小节点的像素值都变化的情况下,说明对应的路径与多边形阻挡物发生了重叠。
[0087] 需要说明的是,本实施例中判断路径是否与多边形阻挡物重叠部分,都可以参照上述方法进行判断。
[0088] S1206.将所述第二线段列表作为第一线段列表,得到对应的第二最小后端路径,并进行第二最小后端路径的确定和判断;
[0089] S1208.依次遍历至得到与所述多边形阻挡物不相重叠的最小后端路径,所述最小后端路径为所述第一有效线段;
[0090] 因为与所述多边形阻挡物相重叠的路径为无效路径,则将无效路径相关信息删除,则所述第一线段列表更新为第二线段列表;进一步按照步骤S1202-S1204步骤的方式,得到所述第二最小后端路径,并进行第二最小后端路径的确定和判断;如果得到的最小后端路径还是与多边形阻挡物重叠,则仍然按照上述的方式获得对应的最小后端路径,并进行相应的确定和判断,直至得到与所述多边形阻挡物不相重叠的最小后端路径;这个最小后端路径就是想要得到的第一有效线段。
[0091] 其中,若得到的第一最小后端路径与所述多边形阻挡物就是不重叠的,则所述第一最小后端路径就是想要得到的第一有效线段。
[0092] S1210.根据所述第一有效线段确定出所述第一有效节点。
[0093] 在根据上述步骤S1202-S1210确定出第一有效线段之后,进一步就得到该有效线段另一端对应的第一有效节点。
[0094] 进一步地,步骤S1006对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;还包括:
[0095] 在所有的后端路径全部遍历后,不存在与所述多边形阻挡物不相重叠的最小后端路径时,将所述第一最小后端路径对应的中间节点设定为预测目标点;
[0096] 其中,所述预测目标点与所述第一有效节点重合。
[0097] 详细地,本实施例中在所述目标点能够达到的情况下,则按照起始点、第一有效节点、第二有效节点、目标点对应出的路径,得到所述起始点与目标点的最优路径。本实施例在存在目标点不能到达的情况,也就是将所有的后端路径都遍历之后没有得到与多边形阻挡物不相重叠的最小后端路径时,此时将得到的第一最小后端路径对应的中间节点作为预测目标点,该预设目标点其实就是距离真实的目标点最近的点;因为该预测目标点一定是能够到达的,本实施例中利用起始点去寻路达到该预测目标点的方式,看做是起始点到达真实目标点的最优路径。
[0098] S1008.根据所述起始点和所述中间节点,得到多个前端路径;
[0099] S1010.根据所述前端路径,确定出所述多边形阻挡物上与所述起始点最近的第二有效节点;
[0100] 具体地,根据所述起始点与多边形阻挡物的中间节点的信息,每个中间节点与所述起始点之间会对应一个路径,即本实施例中的前端路径;将这些前端路径进行比较能够得到距离所述起始点最近的第二有效节点。
[0101] 其中,所述第二有效路径为与多边形阻挡物不相重叠,并且距离所述起始点最近的中间节点。
[0102] S1012.根据信息对照表依次匹配得到,所述第二有效节点到所述第一有效节点之间的所有其他有效节点;
[0103] 进一步地,所述信息对照表的生成方法,如图5所示,包括:
[0104] S602.选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
[0105] S604.计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
[0106] S606.将多个第一距离进行比较,得到第一最短距离以及所述第一最短距离另一端对应的中间节点;
[0107] 由于多边形阻挡物具有很多个中间节点,先选取其中的一个中间节点作为第一目标节点,该第一目标节点与每个其他的中间节点之间也具有一个路径距离,通过计算所述第一目标节点与其他中间节点的路径距离,得到这些路径距离中最近的距离,也就是第一最短距离;进一步,也就得到该第一最短距离对应的与所述第一目标节点最近的中间节点。
[0108] S608.将所述多边形阻挡物的第二目标节点作为第一目标节点;根据得到所述第一最短距离和对应中间节点的方式,获得所述第二目标节点对应的第二最短距离和相应的中间节点;
[0109] 其中,所述第二目标节点也可以选定上述第一距离另一端对应的中间节点,这样挨着的方式依次进行下去。所述第二目标节点也可以从所有其他中间节点中去选取。
[0110] S610.依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离以及与对应最短距离相应的中间节点;
[0111] 进一步地,将多边形阻挡物的另一个中间节点作为目标节点,也就是实施例中的第二目标节点,将第二目标节点看作第一目标节点,按照上述S602-S606得到第一最短距离和对应中间节点的方式,获得这个第二目标节点对应的第二最短距离和相应的中间节点。
[0112] 按照上述的方式去获取其他中间节点对应的最短距离和对应中间节点,其实,在遍历所述多边形阻挡物的中间节点时,只需要在偶数个中间节点时遍历一半的中间节点,在奇数个中间节点时遍历一半加一个中间节点即可,因为这样的情况下,已经得到了每个中间节点对应的最近的中间节点,以及这两个中间节点之间的最短距离。
[0113] S612.由所有的中间节点、对应的最短距离,以及对应最短距离相应的中间节点,生成所述信息对照表。
[0114] 根据上述步骤得到的所有的中间节点,以及两两对应的具有最短距离的相应中间节点,将这些信息组成本实施例中的信息对照表。本实施例中的信息对照表属于一个map_data,其中包含有路径列表path_list(中间节点与对应的最短距离)和点列表point_list中(中间节点与对应最短距离相应的另一个中间节点)。
[0115] S1014.将所述第二有效节点、匹配得到的所有其他有效节点、第一有效节点组成的路径,作为所述起始点到所述目标点之间的最佳路径。
[0116] 具体地,根据信息对照表匹配得到所述第二有效节点与所述第一有效节点之间具有最近距离的所有其他中间节点,并得到这些中间节点之间对应的所有路径;再结合所述起始点与第二有效节点之间的路径,以及所述预测目标点与所述第一有效节点之间的路径;这些路径之和就可以看做所述起始点真实目标点之间的一个最佳路径。
[0117] 并且,其中的第一有效节点以及第二有效节点都属于“关键节点”,这中间跳过了很多的“无用节点”;这不仅能够有用于提升最佳路径获取的性能,还能够降低内存成本。
[0118] 需要说明的是,本实施例中所用到的路径等并不是真实显示出来的路线,只是节点的集合;本实施例中得到的最优路径为游戏角色进行移动的方向;本实施例中路径对应的线段也并不是呈现在地图中的真实线段,只是用于进行路径相关内容的说明。
[0119] 进一步说明的是,每块障碍物对应的多边形区域,与包含在内部的真实的障碍物之间可以有一定的间距,对应地也就是,可以包括:
[0120] 在形成多边形区域之后,检测所述多边形区域与相应的内部障碍物之间的间距;
[0121] 判断该间距是否大于角色A移动所需要的距离;
[0122] 若否,则调整该间距,使该间距满足起始点处的角色A在需要从障碍物旁边走过时,能够正常通过;
[0123] 或者,如果起始点处的角色A需要从该多边形区域与相邻的多边形区域之间通过时,能够正常通过。
[0124] 根据应用场景给与说明的是,比如玩家在游戏界面上点击了一个池塘,这个池塘肯定是不能到达,但是通过本实施例能够让玩家走到池塘边,这样的话,对于游戏玩家来说也是能够接受的,相比较原地不动带来的感受体验也会好。
[0125] 本实施例在所述目标点能够达到的情况下,则按照起始点、第一有效节点、第二有效节点、目标点对应出的路径,得到所述起始点与目标点的最优路径。本实施例在真实目标点不能到达的情况下,能够得到一个预测目标点,通过计算所述预测目标点与所述多边形阻挡物的最近路径,以及所述起始点距离所述多边形阻挡物的最近路径;还有,得到的这两个最近路径之间的一个最优的综合路径;综合得到的这三个步骤下的总的路径,就可以看做是所述起始点与真实的目标点之间的最优的路径。通过本实施例能够在可到达目标点的情况下提供高效的寻路方式;还能够解决起始点不能到达目标点的情况,将所述起始点和预测目标点分开独立的分别寻路到达所述多边形阻挡物的最近路径,然后再结合所述多边形阻挡物之间的最优路径即可,省去了一个节点一个节点去搜索路径的繁琐和耗时,从而节省了运算程序和时间,提升了最优路径的获取效率;在游戏场景下提升了起始点位置上的游戏角色的寻路和行动效率,提升了对应客户端的用户粘度。
[0126] 本发明实施例提供了一种最佳路径获取装置,如图7所示,所述装置包括:
[0127] 地图信息获取模块1002,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
[0128] 第一线段列表获取模块1004,用于根据所述目标点和所述中间节点,得到多个后端路径;
[0129] 第一有效节点获取模块1006,用于对所述后端路径进行有效判断,根据判断结果确定出第一有效节点;
[0130] 第二前端路径获取模块1008,用于根据所述起始点和所述中间节点,得到多个前端路径;
[0131] 第二有效节点获取模块1010,用于根据所述前端路径,确定出所述多边形阻挡物上与所述起始点最近的第二有效节点;
[0132] 其余有效节点获取模块1012,用于根据信息对照表依次匹配得到,所述第二有效节点到所述第一有效节点之间的所有其他有效节点;
[0133] 最佳路径获取模块1014,用于将所述第二有效节点、匹配得到的所有其他有效节点、第一有效节点组成的路径,作为所述起始点到所述目标点之间的最佳路径。
[0134] 进一步地,所述其余有效节点获取模块1012包括信息对照表生成单元;
[0135] 所述信息对照表生成单元,如图8所示,包括:
[0136] 第一目标节点选取子单元802,用于选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
[0137] 第一距离计算子单元804,用于计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
[0138] 对应中间节点得到子单元806,用于将多个第一距离进行比较,得到第一最短距离以及所述第一最短距离另一端对应的中间节点;
[0139] 对应信息得到子单元808,用于将所述多边形阻挡物的第二目标节点作为第一目标节点;根据得到所述第一最短距离和对应中间节点的方式,获得所述第二目标节点对应的第二最短距离和相应的中间节点;
[0140] 其他信息得到子单元810,用于依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离以及与对应最短距离相应的中间节点;
[0141] 信息对照表生成子单元812,用于由所有的中间节点、对应的最短距离,以及对应最短距离相应的中间节点,生成所述信息对照表。
[0142] 进一步地,所述第一有效节点获取模块1006;如图9所示,包括:
[0143] 第一最小后端路径获取单元1602,用于将所述后端路径放入第一线段列表中;并根据所述后端路径,确定出第一最小后端路径;
[0144] 第二线段列表获取单元1604,用于判断所述第一最小后端路径是否与所述多边形阻挡物相重叠,若是,则将所述第一最小后端路径从所述第一线段列表中删除,得到第二线段列表;
[0145] 确定判断单元1606,用于将所述第二线段列表作为第一线段列表,得到对应的第二最小后端路径,并进行第二最小后端路径的确定和判断;
[0146] 第一有效线段获取单元1608,用于依次遍历至得到与所述多边形阻挡物不相重叠的最小后端路径,所述最小后端路径为所述第一有效线段;
[0147] 第一有效节点确定单元1610,用于根据所述第一有效线段确定出所述第一有效节点。
[0148] 进一步地,所述第一有效节点获取模块1006;还包括:
[0149] 预测目标点指定单元1612,用于在所有的后端路径全部遍历后,不存在与所述多边形阻挡物不相重叠的最小后端路径时,将所述第一最小后端路径对应的中间节点设定为预测目标点;
[0150] 其中,所述预测目标点与所述第一有效节点重合。
[0151] 需要说明的是,上述装置实施例与方法实施例具有相同的发明构思。
[0152] 本说明书实施例还提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法实施例任一所述的最佳路径获取方法。
[0153] 具体地,本说明书实施例还提供了一种最佳路径获取设备的结构示意图,如图10所示,该设备可以用于实施上述任一方法实施例中提供的最佳路径获取方法。具体来讲:
[0154] 所述设备可以包括RF(Radio Frequency,射频)电路1610、包括有一个或一个以上计算机可读存储介质的存储器1620、输入单元1630、显示单元1640、传感器1650、音频电路1660、WiFi(wireless fidelity,无线保真)模块1670、包括有一个或者一个以上处理核心的处理器1680、以及电源1690等部件。本领域技术人员可以理解,图10中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0155] RF电路1610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1680处理;另外,将涉及上行的数据发送给基站。通常,RF电路1610包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机耦合器、LNA(LowNoiseAmplifier,低噪声放大器)、双工器等。此外,RF电路1610还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System ofMobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division MultipleAccess,码分多址)、WCDMA(Wideband  Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
[0156] 存储器1620可用于存储软件程序以及模块,处理器1680通过运行存储在存储器1620的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器1620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1620还可以包括存储器控制器,以提供处理器1680和输入单元1630对存储器1620的访问
[0157] 输入单元1630可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1630可包括触敏表面1631以及其他输入设备1632。触敏表面1631,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1631上或在触敏表面1631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1680,并能接收处理器1680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1631。除了触敏表面1631,输入单元1630还可以包括其他输入设备
1632。具体地,其他输入设备1632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0158] 显示单元1640可用于显示由用户输入的信息或提供给用户的信息以及所述设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1640可包括显示面板1641,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1641。进一步的,触敏表面1631可覆盖显示面板1641,当触敏表面1631检测到在其上或附近的触摸操作后,传送给处理器1680以确定触摸事件的类型,随后处理器1680根据触摸事件的类型在显示面板1641上提供相应的视觉输出。其中,触敏表面1631与显示面板1641可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触敏表面1631与显示面板1641集成而实现输入和输出功能。
[0159] 所述设备还可包括至少一种传感器1650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1641的亮度,接近传感器可在所述设备移动到边时,关闭显示面板1641和/或背光。作为运动传感器的一种,重加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于所述设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0160] 音频电路1660、扬声器1661,传声器1662可提供用户与所述设备之间的音频接口。音频电路1660可将接收到的音频数据转换后的电信号,传输到扬声器1661,由扬声器1661转换为声音信号输出;另一方面,传声器1662将收集的声音信号转换为电信号,由音频电路
1660接收后转换为音频数据,再将音频数据输出处理器1680处理后,经RF电路1610以发送给比如另一设备,或者将音频数据输出至存储器1620以便进一步处理。音频电路1660还可能包括耳塞插孔,以提供外设耳机与所述设备的通信。
[0161] WiFi属于短距离无线传输技术,所述设备通过WiFi模块1670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1670,但是可以理解的是,其并不属于所述设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0162] 处理器1680是所述设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器1620内的软件程序和/或模块,以及调用存储在存储器1620内的数据,执行所述设备的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器1680可包括一个或多个处理核心;优选的,处理器1680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1680中。
[0163] 所述设备还包括给各个部件供电的电源1690(比如电池),优选的,电源可以通过电源管理系统与处理器1680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1690还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0164] 尽管未示出,所述设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,设备的显示单元是触摸屏显示器,设备还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行本发明中方法实施例中的指令。
[0165] 本说明书实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方法实施例提供的最佳路径获取方法。
[0166] 可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0167] 需要说明的是:上述本说明书实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0168] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0169] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0170] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈