一种寻路方法和装置制造方法及图纸

技术编号:8907281 阅读:144 留言:0更新日期:2013-07-11 04:57
本发明专利技术实施例公开了一种寻路方法和装置,以方法的实现为例,包括:获取地图,确定地图的第一网格,所述第一网格为所述地图中可到达的网格;按照预定的顺序将第一网格按照预定规则进行合并,得到第二网格;并将所述第二网格包含的第一网格标记为属于所述第二网格;将第二网格作为独立网格执行寻路算法,得到起始网格到目标网格的路径。采用以上方法,通过合并网格的方式,可以减少在使用寻路算法过程中计算的网格数量,这样可以提高寻路效率,减少寻路时间,使设备执行寻路更加流畅。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种寻路方法和装置
技术介绍
将某一位置作为目标位置,以某一物体为起始位置,找到该物体从起始位置接近上述物体所经过的路径的过程,即为寻路的过程。目前较为成熟的寻路算法有A* (A星)寻路算法、等Dijkstra (迪科斯彻)算法等。在计算机
的实际应用中,会将目标位置和起始位置置于一个地图,并将地图分为众多格(一般分为小方格),称为网格,实现计算的简化。在游戏地图中,场景被整齐地划分成大小相等的部分,每一个这样的部分称为网格。游戏中不允许人物经过的网格称为障碍点,在两个网格之间寻找一条不经过任何障碍点的路径的过程称为寻路。以基于独立网格的A星寻路算法为例,在这种寻路算法下,寻路的基本单位是单个网格。如图1所示,假如从黑色网格出发走向一个目标点,那么首先会遍历与黑色网格紧邻的8个网格(图1中网状填充的网格),然后根据A星算法的评估函数,在这8个网格中选择一个非障碍点继续进行搜索,如此类推,直到到达目标点或者搜索失败为止。根据评估函数来确定搜索顺序,是A星算法的特点。采用上述A星算法其计算复杂度将随起始位置与目标位置之间的距离增加而迅速增加,寻路效率较低;若地图面积很大,那么网格的数量也会相应地增多,如果在两个相距较远的网格之间进行寻路,则所需的时间很长,致使寻路过程出现卡顿的情况。
技术实现思路
本专利技术实施例提供了一种寻路方法和装置,用于提高寻路效率,减少寻路时间,使设备执行寻路更加流畅。一种寻路方法,包括:获取地图,确定地图的第一网格,所述第一网格为所述地图中可到达的网格;按照预定的顺序将第一网格按照预定规则进行合并,得到第二网格;并将所述第二网格包含的第一网格标记为属于所述第二网格;将第二网格作为独立网格执行寻路算法,得到起始网格到目标网格的路径。一种寻路装置,包括:网格确定单元,用于获取地图,确定地图的第一网格,所述第一网格为所述地图中可到达的网格;网格合并单元,用于按照预定的顺序将所述网格确定单元确定的第一网格按照预定规则进行合并,得到第二网格;并将所述第二网格包含的第一网格标记为属于所述第二网格;寻路计算单元,用于将所述网格合并单元合并得到的第二网格作为独立网格执行寻路算法,得到起始网格到目标网格的路径。从以上技术方案可以看出,本专利技术实施例具有以下优点:通过合并网格的方式,可以减少在使用寻路算法过程中计算的网格数量,这样可以提高寻路效率,减少寻路时间,使设备执行寻路更加流畅。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有技术A*寻路算法扩展示意图;图2为本专利技术实施例方法流程示意图;图3A为本专利技术实施例重置坐标的示例示意图;图3B为本专利技术实施例合并网格的示例示意图;图4为本专利技术实施例屏幕与网格显示之间转换的示意图;图5为本专利技术实施例方法流程示意图;图6为本专利技术实施例装置结构示意图;图7为本专利技术实施例装置结构示意图;图8为本专利技术实施例装置结构示意图;图9为本专利技术实施例装置结构示意图。具体实施例方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部份实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种寻路方法,如图2所示,包括:201:获取地图,确定地图的第一网格,上述第一网格为上述地图中可到达的网格;本专利技术实施例所称的地图,可以是游戏中的游戏地图,也可以是实景地图。若为游戏中的地图,则该方案可以应用于设备执行游戏程序过程中的寻路。若是实景地图,则可以应用于机器人或者其他实体设备在现实地图中移动时的路径选择和计算。地图作为寻路的载体具体采用什么形式来体现,本专利技术实施例不予限定。202:按照预定的顺序将第一网格按照预定规则进行合并,得到第二网格;并将上述第二网格包含的第一网格标记为属于所述第二网格;进一步地,在按照预定的顺序将第一网格按照预定规则进行合并之前还包括:将第一网格的坐标重置为位于坐标系中同一象限的坐标值。通过重置坐标可以进一步降低寻路算法的计算复杂度,后续实施例将给出具体的举例说明。可选地,上述按照预定的顺序将第一网格按照预定规则进行合并包括:从位于上述地图指定角的网格开始逐行将第一网格按照预定规则进行合并;或者,从位于上述地图指定角的网格开始逐列将第一网格按照预定规则进行合并;所位于上述地图指定角的网格坐标为上述象限的起始坐标。上述指定角一般可以为左上角,后续实施例将会以此为例进行举例说明。但是,采用右上角、左下角、右下角也是可以的,本专利技术实施例对此不予限定。可选地,上述预定规则包括:将未合并的第一网格作为起始点进行扩展得到第二网格,第二网格满足如下条件:第二网格长宽相等、第二网格不包含障碍点并且第二网格与其他第二网格之间相互不重叠。上述第二网格长宽相等作为一个优选的实现方式不应理解为对本专利技术实施例的限定,实际上长宽不相等,相差在预定范围内并不影响本专利技术实施例的实现。后续实施例将给出相应举例说明。203:将第二网格作为独立网格执行寻路算法,得到起始网格到目标网格的路径。以上实施例,通过合并网格的方式,可以减少在使用寻路算法过程中计算的网格数量,这样可以提高寻路效率,减少寻路时间,使设备执行寻路更加流畅。优选地,上述寻路算法为A星寻路算法。更具体地,上述将第二网格作为独立网格执行寻路算法包括:在执行A星算法过程中,在获取到某第一网格后,若上述第一网格被标记为属于第二网格,并且该第二网格已经被扩展则不对上述第一网格进行扩展;若上述第一网格被标记为属于第二网格,并且该第二网格未扩展,则将上述第二网格进行扩展。以游戏中的寻路作为应用场景,比如是人物移动,以上方法具体可以如下:首先,游戏设备获取游戏地图,并确定游戏地图的第一网格,上述第一网格为上述游戏地图中可到达的网格;对应可以到达的网格不可以到达的网格一般就是地形、游戏人物等已经被占据的网格;然后,游戏设备按照预定的顺序将第一网格按照预定规则进行合并,得到第二网格;并将上述第二网格包含的第一网格标记为属于所述第二网格;最后,游戏设备获取人物当前所在的网格(即起始网格),并接收用户选择要到达的目的地(即目标网格),然后将第二网格作为独立网格执行寻路算法,得到起始网格到目标网格的路径。可以减少在使用寻路算法过程中计算的网格数量,这样可以提高寻路效率,减少寻路时间,使设备执行寻路更加流畅。所以在游戏过程中,即使连续点击地图寻找最远的线路也已经不会出现卡顿。以下实施例将分别就网格的坐标重置、合并网格、以及A*算法在存在大网格情况下的具体执行过程进行举例说明。一、网格的坐标重置图3A和图3B所不为转换为屏眷显不以后的图,两者对应的网格图一般应为菱形的网格。菱形的网格中,旧的网格坐标通常X坐标相同的网格的位置的交错的,这样做的缺点是当要获取一个网格相邻的8个网格的坐标时,会比较麻烦。所以把网格坐标重新编排成如图3A所本文档来自技高网...

【技术保护点】
一种寻路方法,其特征在于,包括:获取地图,确定地图的第一网格,所述第一网格为所述地图中可到达的网格;按照预定的顺序将第一网格按照预定规则进行合并,得到第二网格;并将所述第二网格包含的第一网格标记为属于所述第二网格;将第二网格作为独立网格执行寻路算法,得到起始网格到目标网格的路径。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈楚业
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1