导航路径的生成方法、装置和电子设备与流程

文档序号:32434736发布日期:2022-12-06 17:35阅读:35来源:国知局
导航路径的生成方法、装置和电子设备与流程

1.本发明涉及游戏技术领域,尤其是涉及一种导航路径的生成方法、装置和电子设备。


背景技术:

2.在航海类游戏中,游戏场景中主要包括陆地区域和海洋区域;其中,玩家可以控制船只在海洋区域中移动,而船只不可直接到达陆地区域与一些未解锁区域,因而陆地区域和未解锁区域就成为了船只的阻挡区域,对船只的移动造成一定的阻挡。为了可以顺利到达目的地,玩家可以先在场景地图上选择终点位置,游戏系统根据船只的当前位置和终点位置,生成导航路径,进而控制船只沿着该导航路径移动,以到达目的地。然而,考虑到航海类游戏中,游戏场景具有循环属性,即类似于地球,从一个位置出发,向东或向西移动均可以目的地;但场景地图为平面地图,这就容易导致基于场景地图生成的导航路径不是最优路径,甚至导致无法找到导航路径,降低了玩家的游戏体验。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种导航路径的生成方法、装置和电子设备,以于得到更优化或距离更短的路径,提高玩家的游戏体验。
4.第一方面,本发明实施例提供了一种导航路径的生成方法,通过终端设备提供一图形用户界面;图形用户界面中显示有游戏场景的场景地图;受控虚拟对象位于游戏场景中;受控虚拟对象由终端设备进行控制;方法包括:响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;在映射地图中确定第一位置的映射位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;在场景地图中显示导航路径。
5.上述在映射地图中确定第一位置的映射位置的步骤,包括:将映射地图和场景地图横向排列;基于映射地图与场景地图的相对位置,以及场景地图的地图尺寸,确定第一位置的映射位置。
6.上述映射地图包括第一映射地图和第二映射地图;第一映射地图、场景地图和第二映射地图依次横向排列;基于映射地图与场景地图的相对位置,以及场景地图的地图尺寸,确定第一位置的映射位置的步骤,包括:基于第一映射地图与场景地图的第一相对位置,以及场景地图的地图尺寸,在第一映射地图中确定第一映射位置;基于第二映射地图与场景地图的第二相对位置,以及场景地图的地图尺寸,在第二映射地图中确定第二映射位置。
7.上述基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径的步骤,包括:将受控虚拟对象的当前位置确定为第一个待遍历位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置
范围内,确定与待遍历位置相邻的下一个遍历位置;将下一个遍历位置更新为待遍历位置,继续执行基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置的步骤,直至下一个遍历位置为第一位置。
8.上述基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置的步骤,包括:获取待遍历位置的至少一个相邻位置;其中,相邻位置与待遍历位置的距离小于预设的距离阈值;基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级;将优先级最高的邻近位置,确定为待遍历位置相邻的下一个遍历位置。
9.上述基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级的步骤,包括:计算邻近位置与当前位置的最小距离,将最小距离确定为第一中间值;计算邻近位置与第一位置的第一距离值,邻近位置与映射位置的第二距离值;基于第一距离值和第二距离值中的最小距离值,确定第二中间值;基于第一中间值和第二中间值确定邻近位置的优先级。
10.上述映射地图包括多个;映射位置包括第一映射位置和第二映射位置;第一映射位置和第二映射位置位于不同的映射地图中;计算邻近位置与第一位置的第一距离值,邻近位置与映射位置的第二距离值的步骤,包括:计算邻近位置与第一位置的第一距离值;计算邻近位置与第一映射位置之间的第二距离值,以及邻近位置与第二映射位置之间的第二距离值。
11.上述基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径的步骤,包括:初始化待遍历位置集合和已遍历位置集合;将当前位置加入待遍历位置集合,并将当前位置的优先级设置为最高优先级;如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置;如果目标位置不是第一位置,从待遍历位置集合中删除目标位置,将目标位置加入已遍历位置集合;遍历目标位置的邻近位置,如果邻近位置没有位于待遍历位置集合,设置邻近位置的父位置为目标位置,基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级,将邻近位置加入待遍历位置集合;继续执行如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置的步骤;如果目标位置为第一位置,从第一位置开始,逐步追踪父位置,直至到达当前位置,将追踪的路径作为导航路径。
12.上述基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径的步骤,包括:从受控虚拟对象的当前位置开始,在场景地图中向第一位置执行寻路操作,得到第一初始路径;从受控虚拟对象的当前位置开始,在场景地图和映射地图中向映射位置进行寻路操作,得到第二初始路径;基于第一初始路径和第二初始路径,确定当前位置至第一位置的导航路径。
13.上述基于第一初始路径和第二初始路径,确定当前位置至第一位置的导航路径的步骤,包括:如果第一初始路径的路径长度小于第二初始路径的路径长度,将第一初始路径确定为当前位置至第一位置的导航路径;如果第二初始路径的路径长度小于第一初始路径的路径长度,将第二初始路径中,位于映射地图中的部分路径映射至场景地图中,得到当前位置至第一位置的导航路径。
14.第二方面,本发明实施例提供了一种导航路径的生成装置,通过终端设备提供一图形用户界面;图形用户界面中显示有游戏场景的场景地图;受控虚拟对象位于游戏场景中;受控虚拟对象由终端设备进行控制;装置包括:地图生成模块,用于响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;位置确定模块,用于在映射地图中确定第一位置的映射位置;路径确定模块,用于基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;路径显示模块,用于在场景地图中显示导航路径。
15.第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述导航路径的生成方法。
16.第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述导航路径的生成方法。
17.本发明实施例带来了以下有益效果:
18.上述导航路径的生成方法、装置和电子设备,响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;在映射地图中确定第一位置的映射位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;在场景地图中显示导航路径。该方式中,在生成导航路径时,将场景地图和映射地图相邻设置,并在映射地图中确定选中的第一位置的映射位置,从而可以共同基于第一位置和映射位置生成导航路径,对于具有循环属性的游戏场景,相对于仅基于场景地图生成的导航路径的方式,本实施例增加了路径的寻路方向,有利于得到更优化或距离更短的路径,提高了玩家的游戏体验。
19.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
20.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
21.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例提供的一种导航路径的生成方法的流程图;
23.图2为本发明实施例提供的一种场景地图和映射地图的示意图;
24.图3为本发明实施例提供的另一种场景地图和映射地图的示意图;
25.图4为本发明实施例提供的一种场景地图和多个映射地图的示意图;
26.图5为本发明实施例提供的另一种场景地图和多个映射地图的示意图;
27.图6为本发明实施例提供的一种对角距离的计算方式的示意图;
28.图7为本发明实施例提供的一种使用a*算法生成导航路径的流程图;
29.图8为本发明实施例提供的一种导航路径的生成装置的结构示意图;
30.图9为本发明实施例提供的一种电子设备的示意图。
具体实施方式
31.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.在航海类游戏中,游戏场景通常是类似地球的球形或者圆柱形,具有循环属性,而场景地图是一个平面,例如,矩形平面、圆形平面,不具有循环属性;场景地图与游戏场景没有完全匹配;导致基于场景地图生成的导航路径不是最优路径,甚至导致无法找到导航路径,降低了玩家的游戏体验。
33.基于此,本发明实施例提供的一种导航路径的生成方法、装置和电子设备,该技术可以应用于航海类游戏,或者其他类型的游戏中通过场景地图确定路径的场景。
34.在本公开其中一种实施例中的导航路径的生成方法可以运行于本地终端设备或者是服务器。当导航路径的生成方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
35.在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,导航路径的生成方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
36.在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
37.在一种可能的实施方式中,本发明实施例提供了一种导航路径的生成方法,通过终端设备提供图形用户界面,其中,终端设备可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。图形用户界面中显示有游戏场景的场景地图;受控虚拟对象位于游戏场景中;受控虚拟对象由终端设备进行控制;游戏场景中通常包括各类地形、道路、建筑等;在航海类游戏中,游戏场景中主要包括陆地区域和海洋区域;场景地图
中标识了游戏场景中各个区域的分布、重要道路和建筑的分布位置等信息;场景地图可以显示在游戏场景的显示层级之上;该场景地图可以是小地图,也可以是通过窗口显示的大地图。受控虚拟对象可以是船只、人物等对象;玩家通过终端设备执行相关的操作,进而通过终端设备控制受控虚拟对象,例如,控制受控虚拟对象的移动路径、姿势、执行交互操作等。
38.如图1所示,该导航路径的生成方法,包括如下步骤:
39.步骤s102,响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;
40.玩家在场景地图中可以选择目的地。上述选中操作可以为单击操作、双击操作,或者针对指定控件的触发操作等。第一位置被选中后,第一位置即可作为目的地。需要说明的是,场景地图中的部分区域可能不允许执行所述选中操作,例如,航海类游戏中的陆地区域,船只无法直接到达陆地区域上的位置,如果第一位置位于陆地区域,则无法成功执行上述选中操作;再如,游戏场景中可能存在未解锁区域,受控虚拟对象无法到达未解锁区域,如果第一位置位于未解锁区域,则无法成功执行上述选中操作;
41.如果玩家执行选中操作的位置位于上述陆地区域或未解锁区域,则选中操作无法执行,也就不能响应该选中操作,此时,可以生成提示信息,以提示当前执行选中操作的位置无法作为目的地。
42.上述场景地图的映射地图可以通过对场景地图进行复制得到,映射地图的地图内容、地图尺寸等均与场景地图相同;生成映射地图之后,将映射地图与场景地图相邻设置。一种方式中,映射地图有一个,位于场景地图的左侧、右侧、上侧、下侧等;另一种方式中,映射地图包括多个,多个映射地图分布在场景地图的不同位置,每个映射地图均与场景地图相邻。
43.在上述方式中,通过将映射地图与场景地图相邻设置,可以通过平面地图表征游戏场景的循环性,即,在游戏场景中,受控虚拟对象在位置a可以沿着第一方向的路径到达位置b,也可以沿着第二方向的路径到达位置b;且第一方向和第二方向为相反或近似相反的方向。在场景地图中,位置b与位置a具有具体的相对方向,如上述第一方向,因此,受控虚拟对象仅能沿着该相对方向的路径到达位置b;而在本实施例中,场景地图还相邻设置有映射地图;此时,位置b与位置a就具有了两个相对方向;具体的,受控虚拟对象从位置a沿着上述第一方向的路径到达位置b;也可以从位置a沿着上述第二方向,到达映射地图中的位置b。
44.映射地图与场景地图相邻设置后,场景地图中原本相距较远的两个位置,可以通过映射地图获得更近的路径;例如,位于场景地图左侧边缘的位置c和,位于场景地图右侧边缘的位置d,如果仅通过场景地图寻找路径,则该路径大概率需要穿过整个场景地图;而在本实施例中,如果映射地图位置场景地图的左侧相邻位置,此时,映射地图的右侧边缘与场景地图的左侧边缘相邻,则场景地图中的位置c与映射地图中的位置d距离就非常近,此时,路径无需穿过整个场景地图,仅通过很短距离的路径就可以到达位置d。
45.步骤s104,在映射地图中确定第一位置的映射位置;
46.需要说明的是,映射地图无需显示在图形用户界面中,以避免对玩家产生困惑。由于映射地图与场景地图相同,因此,场景地图中的每个位置均可以在映射地图中找到对应
位置,对于第一位置而言,在映射地图中的对应位置即上述映射位置。
47.一种方式中,可以基于场景地图建立第一坐标系,从而得到第一位置的第一坐标值;再基于映射地图建立第二坐标系,通过第二坐标系和第一坐标值,即可从映射地图中确定映射位置。
48.步骤s106,基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;
49.考虑到游戏场景中可能有障碍物、预设的道路、以及无法到达的区域,因此,受控虚拟对象通常无法直线到达第一位置,需要在场景地图中进行寻路。可以通过预设的寻路算法生成上述导航路径。
50.在实际实现时,寻路过程通常是从受控虚拟对象的当前位置开始,搜索当前位置的第一相邻位置,且该第一相邻位置更加靠近第一位置;然后,搜索第一相邻位置的第二相邻位置,且该第二相邻位置比第一相邻位置更加靠近第一位置;即,第一位置可以作为一个基准,引导位置的搜索方向,直至搜索到达第一位置,该第一位置为导航路径的终点位置。
51.在本实施例中,在搜索相邻位置的时候,不仅要考虑相邻位置与第一位置的距离,还需要考虑相邻位置与映射位置的距离;即,在搜索相邻位置的时候,以路径最短为搜索基准,此时,可能朝向第一位置进行搜索,也可能朝向映射位置进行搜索;如果映射位置与当前位置的距离较近,则导航路径的终点位置很可能是映射位置。
52.另一种实现方式中,可以将第一位置和映射位置视为两个终点位置,从当前位置分别从第一位置和映射位置开始寻路,得到两个初始路径,然后比较两个初始路径的长度,将长度最短的初始路径作为上述导航路径。
53.步骤s108,在场景地图中显示导航路径。
54.如果导航路径上的每个位置均位于场景地图,此时,可以将导航路径直接显示在场景独特,例如,通过箭头、虚线的形式指示导航路径的起点(即上述当前位置)、经过的场景位置和终点(即上述第一位置);但如果导航路径的终点为映射位置,此时,导航路径中的部分路径位于映射地图,此时,将映射地图上的部分路径再映射至场景地图中,进而在场景地图中显示出完整的导航路径。在该情况下,导航路径可能会划分为两个路径,例如,场景地图为矩形,导航路径的起点位于矩形的左侧区域,终点位置矩形的右侧区域,导航路径从起点延伸至场景地图的左侧边缘的位置k中断,再从场景地图的右侧边缘的位置m开始继续延伸,直至到达终点位置;其中,位置k和位置m在游戏场景中相邻,但在场景地图中距离较远。
55.上述导航路径的生成方法,响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;在映射地图中确定第一位置的映射位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;在场景地图中显示导航路径。该方式中,在生成导航路径时,将场景地图和映射地图相邻设置,并在映射地图中确定选中的第一位置的映射位置,从而可以共同基于第一位置和映射位置生成导航路径,对于具有循环属性的游戏场景,相对于仅基于场景地图生成的导航路径的方式,本实施例增加了路径的寻路方向,有利于得到更优化或距离更短的路径,提高了玩家的游戏体验。
56.下述实施例继续描述映射地图的生成方式以及映射位置的确定方式。
57.具体的,将映射地图和场景地图横向排列;基于映射地图与场景地图的相对位置,以及场景地图的地图尺寸,确定第一位置的映射位置。
58.图2作为一个示例,映射地图和场景地图均为矩形,且尺寸相同;映射地图与场景地图横向排列,映射地图位于场景地图的左侧;当然,映射地图也可以位于场景地图的右侧,上侧、下侧等,如图3中,映射地图位于场景地图的下侧。
59.一种实现方式中,可以基于场景地图建立坐标系,在该坐标系下,第一位置的坐标值为(x,y),以图2中为例,映射地图在场景地图的左侧,场景地图的宽度为w,此时,映射位置的坐标为(x-w,y)。以图3为例,映射地图位于场景地图的下侧,场景地图的高度为h,此时,映射位置的坐标为(x,y-h)。
60.观察图2可知,在场景地图中,当前位置和第一位置距离较远,因而生成的路径长度也较长;但当前位置与映射位置距离较近,此时,生成的路径长度也较短;通过当前位置与映射位置之间的路径,即可得到场景地图中,当前位置与第一位置的导航路径。
61.该方式可以得到距离较近的最优路径,提高玩家的游戏体验。
62.另一个方式中,映射地图包括第一映射地图和第二映射地图;第一映射地图、场景地图和第二映射地图依次横向排列;基于第一映射地图与场景地图的第一相对位置,以及场景地图的地图尺寸,在第一映射地图中确定第一映射位置;基于第二映射地图与场景地图的第二相对位置,以及场景地图的地图尺寸,在第二映射地图中确定第二映射位置。
63.图4作为示例,假设第一位置的坐标值为(x,y),场景地图的宽度为w,此时,第一映射位置的坐标值为(x-w,y),第二映射位置的坐标值为(x+w,y)。在图4中,当前位置与第一映射地图中的第一映射位置距离较近,此时,导航路径通常基于当前位置和第一映射位置之间的路径确定。
64.但考虑到当前位置可能为场景地图的任意位置,因而在场景地图的两侧分别设置映射地图,有利于任意位置上的当前位置均可以找到最后的导航路径。图5作为一个示例,当前位置位于场景地图的右侧区域,此时,在第一映射位置、第一位置和第二映射位置中,第二映射位置距离当前位置最近,此时,导航路径通常基于当前位置和第二映射位置之间的路径确定。
65.上述方式中,通过设置多个映射地图,有利于朝多个方向生成导航路径,进而得到更加优选的路径。
66.下述实施例继续描述基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径的具体实现方式。
67.一种方式中,将受控虚拟对象的当前位置确定为第一个待遍历位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置;将下一个遍历位置更新为待遍历位置,继续执行基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置的步骤,直至下一个遍历位置为第一位置。
68.为了便于在场景地图中寻路并生成导航路径,可以将场景地图划分为多个网格,每个网格为边长为单位长度的正方形;映射地图也按照同样的单位长度划分网格。在场景地图中,横线和竖线的交叉点作为一个位置。映射地图与场景地图横向排列时,为了便于计算距离,如果映射地图的第一边与场景地图的第二边相邻,则第一边与第二边的距离也设
置为上述单位长度。
69.本实施例中,是通过遍历的方式寻找路径,最终得到导航路径;首先,受控虚拟对象的当前位置为导航路径的起点,将当前位置作为第一个遍历位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置;其中,指定位置范围可以为待遍历位置的左侧、右侧、上侧、下侧、左上侧、左下侧、右上侧、右下侧的位置;这些位置与待遍历位置的距离为单位长度,或者为单位长度的2的开方倍,另外,还可以扩大指定位置范围,例如,预先设置一个距离阈值,将小于该距离阈值内的位置均作为指定位置范围内的位置。在待遍历位置周围,可能具有受控虚拟对象不可经过的位置,例如,阻挡物所在的位置,此时,需要从指定位置范围中删除这些不可经过的位置,从受控虚拟对象可以经过的位置中选择下一个遍历位置。
70.在本实施例中,基于受控虚拟对象的当前位置、第一位置和映射位置,确定与待遍历位置相邻的下一个遍历位置;一种具体的实现方式中,获取待遍历位置的至少一个相邻位置;其中,相邻位置与待遍历位置的距离小于预设的距离阈值;基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级;将优先级最高的邻近位置,确定为待遍历位置相邻的下一个遍历位置。
71.例如,针对每个邻近位置,根据该邻近位置与当前位置、第一位置和映射位置的距离、相对角度等参数,计算该邻近位置的优先级。在基于距离计算优先级时,可以通过下述方式实现:计算邻近位置与当前位置的最小距离,将最小距离确定为第一中间值;计算邻近位置与第一位置的第一距离值,邻近位置与映射位置的第二距离值;基于第一距离值和第二距离值中的最小距离值,确定第二中间值;基于第一中间值和第二中间值确定邻近位置的优先级。
72.上述邻近位置与当前位置的最小距离,可以通过邻近位置与当前位置的对角距离确定;场景地图和映射地图的网格中,如果允许从一个位置直接移动至该位置的斜向相邻的位置,斜向相邻的位置具体可以为左上、左下、右上、右下的位置,此时,可以使用对角距离表征邻近位置与当前位置的距离,如图6所示。
73.这里需要说明的是,在确定第二中间值时,基于第一距离值和第二距离值中的最小距离值确定,即,邻近位置与第一位置和映射位置中的哪个位置近,就使用该位置对应的距离值;另外,在确定第二中间值时,还可能会参考一些其他参数值,此时,第二中间值等于最小距离值与其他参数值之和。然后,将第一中间值和第二中间值之和作为邻近位置的优先级,当然,也可以将第一中间值和第二中间值的乘积作为邻近位置的优先级。
74.由上述实施例可知,映射地图可以包括多个;映射位置包括第一映射位置和第二映射位置;第一映射位置和第二映射位置位于不同的映射地图中;此时,为了从场景地图以及多个映射地图中寻找路径,需要计算邻近位置与第一位置的第一距离值;计算邻近位置与第一映射位置之间的第二距离值,以及邻近位置与第二映射位置之间的第二距离值。该情况下,会得到一个第一距离值和多个第二距离值,从第一距离值和多个第二距离值确定最小距离值,然后再按照上述方式确定第二中间值。
75.上述优先级的计算可以通过启发函数计算,该启发函数可以表示为:f*(n)=g*(n)+h*(n);其中,n代表邻近位置;f*(n)代表邻近位置的优先级;g*(n)代表邻近位置与上述当前位置之间的最小距离,即上述第一中间值;h*(n)代表上述第二中间值,该第二中间
值基于邻近位置与上述第一位置和映射位置的距离中,最小距离值确定,该最小距离值加上其他参数值,得到第二中间值。
76.在上述方式中,将邻近位置与映射位置的距离引入启发函数中,可以使a*算法支持本实施例的在具有循环属性的地图的双向寻路,从而得到距离最短的导航路径。
77.下述实施例使用a*算法进行寻路,生成导航路径。如图7所示,包括下述步骤:
78.步骤s702,初始化待遍历位置集合和已遍历位置集合;
79.初始化后的待遍历集合和已遍历集合为空。
80.步骤s704,将当前位置加入待遍历位置集合,并将当前位置的优先级设置为最高优先级;
81.步骤s706,如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置;
82.步骤s708,如果目标位置不是第一位置,从待遍历位置集合中删除目标位置,将目标位置加入已遍历位置集合;
83.当目标位置不是第一位置,即目标位置不是终点位置时,从待遍历位置集合中删除目标位置,将目标位置加入已遍历位置集合。
84.步骤s710,遍历目标位置的邻近位置,如果邻近位置没有位于待遍历位置集合,设置邻近位置的父位置为目标位置,基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级,将邻近位置加入待遍历位置集合;继续执行如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置的步骤,即,从上述步骤s606开始继续循环。
85.在上述步骤中,基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级,可以参考前述实施例中计算优先级的方式。如果遍历到的邻近位置位于待遍历位置集合中,则跳过该邻近位置,继续遍历下一个邻近位置。
86.步骤s712,如果目标位置为第一位置,从第一位置开始,逐步追踪父位置,直至到达当前位置,将追踪的路径作为导航路径。
87.在上述步骤s710中,如果邻近位置没有位于待遍历位置集合,设置邻近位置的父位置为目标位置,通过该步骤,邻近位置和目标位置产生父子关系,当目标位置到达第一位置时,会产生一串依次相邻的位置,且相邻的位置具有父子关系,沿着该父子关系,可以从第一位置逐步追踪至当前位置,此时,将追踪过程中经历到的位置组成的路径,作为导航路径。
88.在前述实施例中,在训练过程中综合考虑场景地图上的位置与第一位置和映射位置之间的距离,进而进行寻路。下面提供另一种寻路方式。
89.从受控虚拟对象的当前位置开始,在场景地图中向第一位置执行寻路操作,得到第一初始路径;从受控虚拟对象的当前位置开始,在场景地图和映射地图中向映射位置进行寻路操作,得到第二初始路径;基于第一初始路径和第二初始路径,确定当前位置至第一位置的导航路径。
90.上述寻路操作可以使用前述a*算法实现,也可以使用其他算法实现。在上述方式中,分别将第一位置作为终点进行寻路,对映射位置作为终点进行寻路,得到两个初始路径后,从中确定一条初始路径作为导航路径。
91.具体的,如果第一初始路径的路径长度小于第二初始路径的路径长度,将第一初始路径确定为当前位置至第一位置的导航路径;如果第二初始路径的路径长度小于第一初始路径的路径长度,将第二初始路径中,位于映射地图中的部分路径映射至场景地图中,得到当前位置至第一位置的导航路径。
92.如果映射位置包括多个,可以依次将每个映射位置作为终点进行寻路操作,该方式中,通过多次训练操作,可以得到多条初始路径,再从该初始路径中确定距离最短的路径作为导航路径。
93.对应于上述方法实施例,参见图8所示的一种导航路径的生成装置的结构示意图,通过终端设备提供一图形用户界面;图形用户界面中显示有游戏场景的场景地图;受控虚拟对象位于游戏场景中;受控虚拟对象由终端设备进行控制;该装置包括:
94.地图生成模块80,用于响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;
95.位置确定模块82,用于在映射地图中确定第一位置的映射位置;
96.路径确定模块84,用于基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;
97.路径显示模块86,用于在场景地图中显示导航路径。
98.上述导航路径的生成装置,响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;在映射地图中确定第一位置的映射位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;在场景地图中显示导航路径。该方式中,在生成导航路径时,将场景地图和映射地图相邻设置,并在映射地图中确定选中的第一位置的映射位置,从而可以共同基于第一位置和映射位置生成导航路径,对于具有循环属性的游戏场景,相对于仅基于场景地图生成的导航路径的方式,本实施例增加了路径的寻路方向,有利于得到更优化或距离更短的路径,提高了玩家的游戏体验。
99.上述位置确定模块,还用于:将映射地图和场景地图横向排列;基于映射地图与场景地图的相对位置,以及场景地图的地图尺寸,确定第一位置的映射位置。
100.上述映射地图包括第一映射地图和第二映射地图;第一映射地图、场景地图和第二映射地图依次横向排列;上述位置确定模块,还用于:基于第一映射地图与场景地图的第一相对位置,以及场景地图的地图尺寸,在第一映射地图中确定第一映射位置;基于第二映射地图与场景地图的第二相对位置,以及场景地图的地图尺寸,在第二映射地图中确定第二映射位置。
101.上述路径确定模块,还用于:将受控虚拟对象的当前位置确定为第一个待遍历位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置;将下一个遍历位置更新为待遍历位置,继续执行基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置的步骤,直至下一个遍历位置为第一位置。
102.上述路径确定模块,还用于:获取待遍历位置的至少一个相邻位置;其中,相邻位置与待遍历位置的距离小于预设的距离阈值;基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级;将优先级最高的邻近位置,确定为待遍历位置相邻的下
一个遍历位置。
103.上述路径确定模块,还用于:计算邻近位置与当前位置的最小距离,将最小距离确定为第一中间值;计算邻近位置与第一位置的第一距离值,邻近位置与映射位置的第二距离值;基于第一距离值和第二距离值中的最小距离值,确定第二中间值;基于第一中间值和第二中间值确定邻近位置的优先级。
104.上述映射地图包括多个;映射位置包括第一映射位置和第二映射位置;第一映射位置和第二映射位置位于不同的映射地图中;上述计算邻近位置与第一位置的第一距离值;计算邻近位置与第一映射位置之间的第二距离值,以及邻近位置与第二映射位置之间的第二距离值。
105.上述路径确定模块,还用于:初始化待遍历位置集合和已遍历位置集合;将当前位置加入待遍历位置集合,并将当前位置的优先级设置为最高优先级;如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置;如果目标位置不是第一位置,从待遍历位置集合中删除目标位置,将目标位置加入已遍历位置集合;遍历目标位置的邻近位置,如果邻近位置没有位于待遍历位置集合,设置邻近位置的父位置为目标位置,基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级,将邻近位置加入待遍历位置集合;继续执行如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置的步骤;如果目标位置为第一位置,从第一位置开始,逐步追踪父位置,直至到达当前位置,将追踪的路径作为导航路径。
106.上述路径确定模块,还用于:从受控虚拟对象的当前位置开始,在场景地图中向第一位置执行寻路操作,得到第一初始路径;从受控虚拟对象的当前位置开始,在场景地图和映射地图中向映射位置进行寻路操作,得到第二初始路径;基于第一初始路径和第二初始路径,确定当前位置至第一位置的导航路径。
107.上述路径确定模块,还用于:如果第一初始路径的路径长度小于第二初始路径的路径长度,将第一初始路径确定为当前位置至第一位置的导航路径;如果第二初始路径的路径长度小于第一初始路径的路径长度,将第二初始路径中,位于映射地图中的部分路径映射至场景地图中,得到当前位置至第一位置的导航路径。
108.本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述导航路径的生成方法。该电子设备可以是服务器,也可以是触控终端设备。
109.参见图9所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述导航路径的生成方法。
110.进一步地,图9所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
111.其中,存储器101可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用
一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
112.处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
113.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述导航路径的生成方法中的下述操作:
114.通过终端设备提供一图形用户界面;图形用户界面中显示有游戏场景的场景地图;受控虚拟对象位于游戏场景中;受控虚拟对象由终端设备进行控制;响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;在映射地图中确定第一位置的映射位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;在场景地图中显示导航路径。
115.将映射地图和场景地图横向排列;基于映射地图与场景地图的相对位置,以及场景地图的地图尺寸,确定第一位置的映射位置。
116.映射地图包括第一映射地图和第二映射地图;第一映射地图、场景地图和第二映射地图依次横向排列;基于第一映射地图与场景地图的第一相对位置,以及场景地图的地图尺寸,在第一映射地图中确定第一映射位置;基于第二映射地图与场景地图的第二相对位置,以及场景地图的地图尺寸,在第二映射地图中确定第二映射位置。
117.将受控虚拟对象的当前位置确定为第一个待遍历位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置;将下一个遍历位置更新为待遍历位置,继续执行基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置的步骤,直至下一个遍历位置为第一位置。
118.获取待遍历位置的至少一个相邻位置;其中,相邻位置与待遍历位置的距离小于预设的距离阈值;基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级;将优先级最高的邻近位置,确定为待遍历位置相邻的下一个遍历位置。
119.计算邻近位置与当前位置的最小距离,将最小距离确定为第一中间值;计算邻近位置与第一位置的第一距离值,邻近位置与映射位置的第二距离值;基于第一距离值和第二距离值中的最小距离值,确定第二中间值;基于第一中间值和第二中间值确定邻近位置
的优先级。
120.上述映射地图包括多个;映射位置包括第一映射位置和第二映射位置;第一映射位置和第二映射位置位于不同的映射地图中;计算邻近位置与第一位置的第一距离值;计算邻近位置与第一映射位置之间的第二距离值,以及邻近位置与第二映射位置之间的第二距离值。
121.初始化待遍历位置集合和已遍历位置集合;将当前位置加入待遍历位置集合,并将当前位置的优先级设置为最高优先级;如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置;如果目标位置不是第一位置,从待遍历位置集合中删除目标位置,将目标位置加入已遍历位置集合;遍历目标位置的邻近位置,如果邻近位置没有位于待遍历位置集合,设置邻近位置的父位置为目标位置,基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级,将邻近位置加入待遍历位置集合;继续执行如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置的步骤;如果目标位置为第一位置,从第一位置开始,逐步追踪父位置,直至到达当前位置,将追踪的路径作为导航路径。
122.从受控虚拟对象的当前位置开始,在场景地图中向第一位置执行寻路操作,得到第一初始路径;从受控虚拟对象的当前位置开始,在场景地图和映射地图中向映射位置进行寻路操作,得到第二初始路径;基于第一初始路径和第二初始路径,确定当前位置至第一位置的导航路径。
123.如果第一初始路径的路径长度小于第二初始路径的路径长度,将第一初始路径确定为当前位置至第一位置的导航路径;如果第二初始路径的路径长度小于第一初始路径的路径长度,将第二初始路径中,位于映射地图中的部分路径映射至场景地图中,得到当前位置至第一位置的导航路径。
124.该方式中,在生成导航路径时,将场景地图和映射地图相邻设置,并在映射地图中确定选中的第一位置的映射位置,从而可以共同基于第一位置和映射位置生成导航路径,对于具有循环属性的游戏场景,相对于仅基于场景地图生成的导航路径,本实施例增加了路径的寻路方向,有利于得到更优化或距离更短的路径,提高了玩家的游戏体验。
125.本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述导航路径的生成方法。
126.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述导航路径的生成方法中的下述操作:
127.通过终端设备提供一图形用户界面;图形用户界面中显示有游戏场景的场景地图;受控虚拟对象位于游戏场景中;受控虚拟对象由终端设备进行控制;响应针对场景地图中第一位置的选中操作,生成场景地图的映射地图;其中,映射地图与场景地图相同;映射地图与场景地图相邻设置;在映射地图中确定第一位置的映射位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从场景地图中确定当前位置至第一位置的导航路径;在场景地图中显示导航路径。
128.将映射地图和场景地图横向排列;基于映射地图与场景地图的相对位置,以及场景地图的地图尺寸,确定第一位置的映射位置。
129.映射地图包括第一映射地图和第二映射地图;第一映射地图、场景地图和第二映射地图依次横向排列;基于第一映射地图与场景地图的第一相对位置,以及场景地图的地图尺寸,在第一映射地图中确定第一映射位置;基于第二映射地图与场景地图的第二相对位置,以及场景地图的地图尺寸,在第二映射地图中确定第二映射位置。
130.将受控虚拟对象的当前位置确定为第一个待遍历位置;基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置;将下一个遍历位置更新为待遍历位置,继续执行基于受控虚拟对象的当前位置、第一位置和映射位置,从待遍历位置的指定位置范围内,确定与待遍历位置相邻的下一个遍历位置的步骤,直至下一个遍历位置为第一位置。
131.获取待遍历位置的至少一个相邻位置;其中,相邻位置与待遍历位置的距离小于预设的距离阈值;基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级;将优先级最高的邻近位置,确定为待遍历位置相邻的下一个遍历位置。
132.计算邻近位置与当前位置的最小距离,将最小距离确定为第一中间值;计算邻近位置与第一位置的第一距离值,邻近位置与映射位置的第二距离值;基于第一距离值和第二距离值中的最小距离值,确定第二中间值;基于第一中间值和第二中间值确定邻近位置的优先级。
133.上述映射地图包括多个;映射位置包括第一映射位置和第二映射位置;第一映射位置和第二映射位置位于不同的映射地图中;计算邻近位置与第一位置的第一距离值;计算邻近位置与第一映射位置之间的第二距离值,以及邻近位置与第二映射位置之间的第二距离值。
134.初始化待遍历位置集合和已遍历位置集合;将当前位置加入待遍历位置集合,并将当前位置的优先级设置为最高优先级;如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置;如果目标位置不是第一位置,从待遍历位置集合中删除目标位置,将目标位置加入已遍历位置集合;遍历目标位置的邻近位置,如果邻近位置没有位于待遍历位置集合,设置邻近位置的父位置为目标位置,基于受控虚拟对象的当前位置、第一位置和映射位置,计算邻近位置的优先级,将邻近位置加入待遍历位置集合;继续执行如果待遍历位置集合不为空,从待遍历位置集合中获取优先级最高的目标位置的步骤;如果目标位置为第一位置,从第一位置开始,逐步追踪父位置,直至到达当前位置,将追踪的路径作为导航路径。
135.从受控虚拟对象的当前位置开始,在场景地图中向第一位置执行寻路操作,得到第一初始路径;从受控虚拟对象的当前位置开始,在场景地图和映射地图中向映射位置进行寻路操作,得到第二初始路径;基于第一初始路径和第二初始路径,确定当前位置至第一位置的导航路径。
136.如果第一初始路径的路径长度小于第二初始路径的路径长度,将第一初始路径确定为当前位置至第一位置的导航路径;如果第二初始路径的路径长度小于第一初始路径的路径长度,将第二初始路径中,位于映射地图中的部分路径映射至场景地图中,得到当前位置至第一位置的导航路径。
137.该方式中,在生成导航路径时,将场景地图和映射地图相邻设置,并在映射地图中确定选中的第一位置的映射位置,从而可以共同基于第一位置和映射位置生成导航路径,
对于具有循环属性的游戏场景,相对于仅基于场景地图生成的导航路径,本实施例增加了路径的寻路方向,有利于得到更优化或距离更短的路径,提高了玩家的游戏体验。
138.本发明实施例所提供的导航路径的生成方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
139.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
140.另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
141.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
142.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
143.最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1