用于游戏三维空间飞行的寻路方法、装置及介质与流程

文档序号:25590210发布日期:2021-06-22 17:06阅读:348来源:国知局
用于游戏三维空间飞行的寻路方法、装置及介质与流程

本发明涉及计算机三维游戏领域,具体涉及了一种用于游戏三维空间飞行的寻路方法、装置及介质。



背景技术:

在三维游戏中,经常需要对路径进行寻路及导航,现有技术常通过导航网格进行游戏的路径寻路。对于导航网格,其依赖于地图的精细程度,对于地图场景复杂的区域,其需要人为的设置和开发,效率较为低下且导航效果较差。主要使用的是地面导航,对于三维空间的路径导航寻路目前较为欠缺,因此,急需一种能够自动实现寻路且开发简单的方法。



技术实现要素:

本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了用于游戏三维空间飞行的寻路方法、装置及介质,以实现三维游戏空间的自动寻路,具有高效及精准的寻路效果。

本发明的技术方案包括一种用于游戏三维空间飞行的寻路方法,其特征在于,包括以下步骤:s100,获取游戏的三维场景空间,将所述三维场景空间划分为若干柱体,以所述柱体的相交区域作为节点,以节点构建三维场景空间的二维链表;s200,根据寻路的起点和终点所处的节点,创建对应的起点列表及终点列表,从起点列表选取任一节点放入终点列表并作为寻路节点;s300,基于所述寻路节点对所述二维链表进行遍历,以节点的高度信息作为对比值,确定与所述寻路节点想通的若干相通节点,并根据相通节点的信息重复执行遍历及相通节点,直至所有相通节点被找到;s400,根据起点、终点及相通节点的信息,回溯起点与终端的空间寻路。

根据所述的用于游戏三维空间飞行的寻路方法,其中节点包括高度信息及二维坐标,其中高度信息为顶部高度和底部高度构成的高度信息,二维坐标为x坐标及y坐标构成的位置信息。

根据所述的用于游戏三维空间飞行的寻路方法,其中二维链表通过将节点进行连接,其中节点空间不重叠且不相接。

根据所述的用于游戏三维空间飞行的寻路方法,其中s100包括:根据起点及终点的二维坐标,确定起点及终端所在的链表,并遍历链表的节点,通过比较高度可以得到起点及终端所在的节点。

根据所述的用于游戏三维空间飞行的寻路方法,其中s300包括:s310,通过寻路节点的位置信息,得到寻路节点所在链表的最接近的8个链表;s320,遍历8个链表的所有节点,通过比较节点与寻路节点的高度值,确定与寻路节点相通的节点;s330,检查所述s320得到的节点是否处于终点对应的节点列表中,并舍弃在终点对应的节点列表里的节点;s340,对所述s320及s330得到的每个节点,根据节点对应的位置信息和高度信息,分别计算对应的评估值,所述评估值用于起点列表的优先度排序;s350,将节点中添加寻路节点的指针;s360,将节点按评估值插入到起点列表中,并对起点列表进行排序。

根据所述的用于游戏三维空间飞行的寻路方法,其中s400包括:重复所述s310~s360,直到所述s310取出的节点是终点所在的节点或取不出节点,若结果为取不出节点,则寻路结束,起点与终端之间不存在空间上的通路,并在交互界面进行显示;若取到了终点所在节点,根据取出的指针,回溯出整个起点对应的节点到终点对应的节点所有寻路节点。

根据所述的用于游戏三维空间飞行的寻路方法,其中该方法还包括节点内寻路,所述节点内寻路包括:s510,将节点平铺展开,可以得到高度图;s520,尝以直线从起点的节点以直线连线到终点的节点;s530,当碰到高度不可通过的节点时,计算该节点最近可以通过的点,将该点作为转折点;s540,将转折点到原本的终点之间的节点重新作为高度图,将高度图重复执行s510~s530的处理,直到所有高度图都不再产生新的转折点,则完成节点内寻路。

本发明的技术方案还包括一种用于游戏三维空间飞行的寻路装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现任一所述的方法步骤。

本发明的技术方案还包括一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现任一所述的方法步骤。

本发明的有益效果为:以实现三维游戏空间的自动寻路,具有高效及精准的寻路效果。

附图说明

下面结合附图和实施例对本发明进一步地说明;

图1所示为根据本发明实施方式的总体流程图。

图2所示为根据本发明实施方式的节点外寻路流程图。

图3所示为根据本发明实施方式的节点内寻路流程图。

图4所示为根据本发明实施方式的装置示意图。

具体实施方式

本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。

在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。

本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

图1所示为根据本发明实施方式的总体流程图。该流程包括:s100,获取游戏的三维场景空间,将三维场景空间划分为若干柱体,以柱体的相交区域作为节点,以节点构建三维场景空间的二维链表;s200,根据寻路的起点和终点所处的节点,创建对应的起点列表及终点列表,从起点列表选取任一节点放入终点列表并作为寻路节点;s300,基于寻路节点对二维链表进行遍历,以节点的高度信息作为对比值,确定与寻路节点想通的若干相通节点,并根据相通节点的信息重复执行遍历及相通节点,直至所有相通节点被找到;s400,根据起点、终点及相通节点的信息,回溯起点与终端的空间寻路。

图2所示为根据本发明实施方式的节点外寻路流程图。该流程包括:s310,通过寻路节点的位置信息,得到寻路节点所在链表的最接近的8个链表;s320,遍历8个链表的所有节点,通过比较节点与寻路节点的高度值,确定与寻路节点相通的节点;s330,检查s320得到的节点是否处于终点对应的节点列表中,并舍弃在终点对应的节点列表里的节点;s340,对s320及s330得到的每个节点,根据节点对应的位置信息和高度信息,分别计算对应的评估值,评估值用于起点列表的优先度排序;s350,将节点中添加寻路节点的指针;s360,将节点按评估值插入到起点列表中,并对起点列表进行排序。

基于上述流程,本发明提供以下示例:将三维场景地图先按水平二维空间切割成n*m的格子,每个格子在三维空间里表示为一根柱体。将柱体里空间相连的区域表示为一个节点,这个节点有两个数据信息:一个是由顶部高度和底部高度构成的高度信息;另一是由x坐标、y坐标构成的位置信息。把所有节点以链表链接起来则可以得到,这些节点在空间上并没有重叠部分,也没有相接部分,整个三维场景就转化成n*m个链表。

(1)假设起始点为a,终点为b。根据xy坐标可以确定a所在的链表,再遍历链表的节点,通过比较高度可以得到a所在的节点。同样的方法可以得到b所在的节点。

(2)先把a节点放入open列表。

(3)从open列表里取出一个节点,并把这个节点放入close列表。暂称该节点为node。

(4)通过node的位置信息,得到node所在链表的附近8个链表。

(5)遍历这8个链表的所有节点,通过比较这些节点与node的高度值,可以得到哪些节点与node相通。

(6)检查步骤(5)得到的这些节点是否在close列表里,并舍弃在close列表里的节点

(7)经过步骤(5),(6)后得到的每一个节点,都可以根据自己的位置信息和高度信息,分别计算一个评估值。这个值是open列表的一个排序值,表示这个节点应该被open的优先度。

(8)这些节点需要记录node节点的指针,表示是从node节点搜索过来的。

(9)把节点按排序值插入到open列表里,让open列表里的节点都是有序。

(10)重复步骤(3)~(9)。直到步骤(3)取出的节点是b所在的节点或取不出节点。如果结果为取不出节点,则寻路结束,ab之间不存在空间上的通路。

(11)如果取到了b所在节点,则b节点上必定有被哪个节点open的指针。

(12)根据这个指针,可以回溯出整个a到b节点所有节点。

图3所示为根据本发明实施方式的节点内寻路流程图。该流程包括:s510,将节点平铺展开,可以得到高度图;s520,尝以直线从起点的节点以直线连线到终点的节点;s530,当碰到高度不可通过的节点时,计算该节点最近可以通过的点,将该点作为转折点;s540,将转折点到原本的终点之间的节点重新作为高度图,将高度图重复执行s510~s530的处理,直到所有高度图都不再产生新的转折点,则完成节点内寻路。

图2在进行空间节点寻路后,图3还包括对节点内进行寻路处理,本发明根据图3流程,提出的流程示例如下:

(1)把节点平铺展开,可以得到高度图。

(2)尝试以直线从起点的节点以直线连线到终点的节点。

(3)当碰到高度不可通过的节点时,计算该节点最近可以通过的点,把该点视为转折点。

(4)把原本的起点到转折点之间的节点重新视为一张新的高度图。把转折点到原本的重点之间的节点重新视为另一张高度图。

(5)把新的高度图重复按(1)~(4)步骤去处理,直到所有高度图都不再产生新的转折点。则节点内寻路完成。

图4所示为根据本发明实施方式的装置示意图。装置包括存储器100及处理器200,其中处理器200存储有计算机程序,计算机程序用于执行:获取游戏的三维场景空间,将三维场景空间划分为若干柱体,以柱体的相交区域作为节点,以节点构建三维场景空间的二维链表;根据寻路的起点和终点所处的节点,创建对应的起点列表及终点列表,从起点列表选取任一节点放入终点列表并作为寻路节点;基于寻路节点对二维链表进行遍历,以节点的高度信息作为对比值,确定与寻路节点想通的若干相通节点,并根据相通节点的信息重复执行遍历及相通节点,直至所有相通节点被找到;根据起点、终点及相通节点的信息,回溯起点与终端的空间寻路。其中,存储器100用于存储数据。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1