玩具专利数据库

游戏的寻路方法及装置、存储介质、电子装置与

发布日期:2024-09-01 浏览次数:

本发明涉及计算机,具体而言,涉及一种游戏的寻路方法及装置、存储介质、电子装置。背景技术:1、相关技术中,游戏中寻找进行寻路,寻路采用两种方案:基于均匀格子的a星寻路和导航网格寻路。均匀格子的a星寻路:在场景较大、存在多层空间寻路时,描述存储这些格子会消耗大量的内存,且数据量过大寻路效率低。导航网格寻路:导航网格的寻路数据通常基于三角形进行描述,建造游戏通常按照四边形(立方体)和圆(球)进行场景修改,修改后导航网格系统还得走一遍通用的寻路数据烘焙流程,才能进行寻路。2、相关技术中,均匀格子a星并不是为较大场景设计的,3d场景中寻路的节点数据膨胀太快,立方级增长。导航网格寻路也不是专门针对建造类等频繁修改场景信息的游戏做的寻路方案。由于在建造类游戏中玩家会大规模修改游戏场景,寻路信息会跟着改变。如果游戏场景越大,寻路搜索数据量越大,寻路耗时也越高,导致寻路效率较低。3、针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。技术实现思路1、本发明实施例提供了一种游戏的寻路方法及装置、存储介质、电子装置。2、根据本发明的一个实施例,提供了一种游戏的寻路方法,包括:确定三维场景中的起点坐标和终点坐标;查找所述起点坐标所在的起点立方体和所述终点坐标所在的终点立方体;搜索所述起点立方体到所述终点立方体之间的立方体列表,其中,所述立方体列表包括多个相邻的寻路立方体,至少一个寻路立方体由多个单位立方体构成;根据所述立方体列表生成所述起点坐标到所述终点坐标的寻路路径。3、可选的,搜索所述起点立方体到所述终点立方体之间的立方体列表包括:以所述起点立方体为遍历起点,在导航数据中查找与所述起点立方体相邻的若干个邻接立方体;在所述若干个邻接立方体中选择距离所述终点立方体最近的立方体为寻路立方体;迭代执行以下步骤,直到当前寻路立方体为所述终点立方体:以当前的寻路立方体为遍历起点,在导航数据中查找与当前的寻路立方体相邻的若干个邻接立方体,在所述若干个邻接立方体中选择距离所述终点立方体最近的立方体为寻路立方体;按序存储迭代经过的寻路立方体,得到所述立方体列表。4、可选的,在根据所述立方体列表生成所述起点坐标到所述终点坐标的寻路路径之后,所述方法还包括:监测所述三维场景是否发生修改;若所述三维场景发生修改,定位发生修改的地形区域;确定所述地形区域关联的第一寻路立方体;将所述第一寻路立方体分割为多个单位立方体,其中,所述单位立方体为所述三维场景中的最小可移动节点;依据所述多个单位立方体更新所述立方体列表。5、可选的,依据所述多个单位立方体更新所述立方体列表包括:判断所述多个单位立方体中每个单位立方体是否存在场景分割数据;针对不存在场景分割数据的第一类单位立方体,配置连通标签,针对存在场景分割数据的第二类单位立方体,配置中断标签,并采用所述多个单位立方体,以及每个单位立方体对应的标签数据创建二维数组;对所述二维数组迭代执行以下步骤,直到不存在相互连通的单位立方体:基于所述连通标签在所述二维数组中查找连通标签最长的第二寻路立方体;记录所述第二寻路立方体,并对所述第二寻路立方体范围内的第一类单位立方体配置中断标签;更新所述二维数组;在迭代完成之后,将记录的所有第二寻路立方体添加至所述立方体列表。6、可选的,在查找所述起点坐标所在的起点立方体和所述终点坐标所在的终点立方体之前,所述方法还包括:对所述三维场景进行空间分割,得到多个单位立方体;从所述多个单位立方体中提取所述三维场景的表层单位立方体集合;将所述表层单位立方体集合在水平面按照最大立方体进行合并,得到多个连续的立方体。7、可选的,对所述三维场景进行空间分割,得到多个单位立方体包括:在所述三维场景中选择逻辑起点,创建离散化的逻辑坐标系;将所述三维场景划分为连续相接的多个单位立方体;将所述三维场景的三角面片和每个单位立方体做相交测试,并把相交的三角面片的三维场景数据确定为单位立方体的场景分割数据;将每个场景分割数据确定为所述逻辑坐标系的逻辑数据,并存储在哈希表中。8、可选的,将每个场景分割数据确定为所述逻辑坐标系的逻辑数据,并存储在哈希表中包括:将世界坐标值离散化到单个单位立方体坐标中,得到三维正整数坐标;对所述三维正整数坐标的坐标值进行位运算,合并得到预设长度的坐标整数;将所述坐标整数配置为对应世界坐标值的key,在哈希表中存储单位立方体的key和世界坐标值。9、可选的,将所述表层单位立方体集合在水平面按照最大立方体进行合并,得到多个连续的立方体包括:判断所述表层单位立方体集合中每个表层单位立方体是否存在场景分割数据;针对不存在场景分割数据的第一类表层单位立方体,配置连通标签,针对存在场景分割数据的第二类表层单位立方体,配置中断标签,并采用所述表层单位立方体集合,以及每个表层单位立方体对应的标签数据创建二维数组;对所述二维数组迭代执行以下步骤,直到不存在相互连通的表层单位立方体:基于所述连通标签在所述二维数组中查找连通标签最长的最大矩形;记录所述最大矩形,并对所述最大矩形范围内的第一类表层单位立方体配置中断标签;更新所述二维数组;在迭代完成之后,将记录的所有最大矩形存储为多个邻接的立方体。10、根据本发明的另一个实施例,提供了一种游戏的寻路装置,包括:第一确定模块,用于确定三维场景中的起点坐标和终点坐标;查找模块,用于查找所述起点坐标所在的起点立方体和所述终点坐标所在的终点立方体;搜索模块,用于搜索所述起点立方体到所述终点立方体之间的立方体列表,其中,所述立方体列表包括多个相邻的寻路立方体,至少一个寻路立方体由多个单位立方体构成;生成模块,用于根据所述立方体列表生成所述起点坐标到所述终点坐标的寻路路径。11、可选的,所述搜索模块包括:查找单元,用于以所述起点立方体为遍历起点,在导航数据中查找与所述起点立方体相邻的若干个邻接立方体;选择单元,用于在所述若干个邻接立方体中选择距离所述终点立方体最近的立方体为寻路立方体;迭代单元,用于迭代执行以下步骤,直到当前寻路立方体为所述终点立方体:以当前的寻路立方体为遍历起点,在导航数据中查找与当前的寻路立方体相邻的若干个邻接立方体,在所述若干个邻接立方体中选择距离所述终点立方体最近的立方体为寻路立方体;存储单元,用于按序存储迭代经过的寻路立方体,得到所述立方体列表。12、可选的,所述装置还包括:监测模块,用于在所述生成模块根据所述立方体列表生成所述起点坐标到所述终点坐标的寻路路径之后,监测所述三维场景是否发生修改;定位模块,用于若所述三维场景发生修改,定位发生修改的地形区域;第二确定模块,用于确定所述地形区域关联的第一寻路立方体;第一分割模块,用于将所述第一寻路立方体分割为多个单位立方体,其中,所述单位立方体为所述三维场景中的最小可移动节点;更新模块,用于依据所述多个单位立方体更新所述立方体列表。13、可选的,所述更新模块包括:判断单元,用于判断所述多个单位立方体中每个单位立方体是否存在场景分割数据;配置单元,用于针对不存在场景分割数据的第一类单位立方体,配置连通标签,针对存在场景分割数据的第二类单位立方体,配置中断标签,并采用所述多个单位立方体,以及每个单位立方体对应的标签数据创建二维数组;迭代单元,用于对所述二维数组迭代执行以下步骤,直到不存在相互连通的单位立方体:基于所述连通标签在所述二维数组中查找连通标签最长的第二寻路立方体;记录所述第二寻路立方体,并对所述第二寻路立方体范围内的第一类单位立方体配置中断标签;更新所述二维数组;添加单元,用于在迭代完成之后,将记录的所有第二寻路立方体添加至所述立方体列表。14、可选的,所述装置还包括:第二分割模块,用于在所述查找模块查找所述起点坐标所在的起点立方体和所述终点坐标所在的终点立方体之前,对所述三维场景进行空间分割,得到多个单位立方体;提取模块,用于从所述多个单位立方体中提取所述三维场景的表层单位立方体集合;合并模块,用于将所述表层单位立方体集合在水平面按照最大立方体进行合并,得到多个连续的立方体。15、可选的,所述第二分割模块包括:创建单元,用于在所述三维场景中选择逻辑起点,创建离散化的逻辑坐标系;划分单元,用于将所述三维场景划分为连续相接的多个单位立方体;确定单元,用于将所述三维场景的三角面片和每个单位立方体做相交测试,并把相交的三角面片的三维场景数据确定为单位立方体的场景分割数据;存储单元,用于将每个场景分割数据确定为所述逻辑坐标系的逻辑数据,并存储在哈希表中。16、可选的,所述存储单元包括:离散子单元,用于将世界坐标值离散化到单个单位立方体坐标中,得到三维正整数坐标;运算子单元,用于对所述三维正整数坐标的坐标值进行位运算,合并得到预设长度的坐标整数;存储子单元,用于将所述坐标整数配置为对应世界坐标值的key,在哈希表中存储单位立方体的key和世界坐标值。17、可选的,所述合并模块包括:判断单元,用于判断所述表层单位立方体集合中每个表层单位立方体是否存在场景分割数据;配置单元,用于针对不存在场景分割数据的第一类表层单位立方体,配置连通标签,针对存在场景分割数据的第二类表层单位立方体,配置中断标签,并采用所述表层单位立方体集合,以及每个表层单位立方体对应的标签数据创建二维数组;迭代单元,用于对所述二维数组迭代执行以下步骤,直到不存在相互连通的表层单位立方体:基于所述连通标签在所述二维数组中查找连通标签最长的最大矩形;记录所述最大矩形,并对所述最大矩形范围内的第一类表层单位立方体配置中断标签;更新所述二维数组;存储单元,用于在迭代完成之后,将记录的所有最大矩形存储为多个邻接的立方体。18、根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。19、根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。20、通过本发明,确定三维场景中的起点坐标和终点坐标,查找起点坐标所在的起点立方体和终点坐标所在的终点立方体,搜索起点立方体到终点立方体之间的立方体列表,其中,立方体列表包括多个相邻的寻路立方体,至少一个寻路立方体由多个单位立方体构成,根据立方体列表生成起点坐标到终点坐标的寻路路径,通过将多个单位立方体合并为寻路路径中的一个寻路立方体,可以将三维场景中的多个可移动节点合并为一个大的节点,采用简化后的节点进行路径搜索,减少寻路时需要搜索的可移动节点数量,解决了相关技术在三位场景中寻路效率低的技术问题,极大的减少了寻路待搜索的数据量,提高了搜索效率,减少了寻路耗时,减少了寻路过程中的内存消耗。