CN116899229A - 二维虚拟场景的路径确定方法、装置、设备和存储介质 - Google Patents
二维虚拟场景的路径确定方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116899229A CN116899229A CN202310942588.1A CN202310942588A CN116899229A CN 116899229 A CN116899229 A CN 116899229A CN 202310942588 A CN202310942588 A CN 202310942588A CN 116899229 A CN116899229 A CN 116899229A
- Authority
- CN
- China
- Prior art keywords
- sub
- grid
- target corner
- target
- grids
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000010586 diagram Methods 0.000 claims abstract description 127
- 230000008859 change Effects 0.000 claims description 38
- 238000010276 construction Methods 0.000 claims description 10
- 238000009499 grossing Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 230000004888 barrier function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Traffic Control Systems (AREA)
Abstract
本申请提供了一种二维虚拟场景的路径确定方法、装置、设备和存储介质,其中,该方法包括:对所述可通行网格进行遍历,确定所述二维虚拟场景的第一子目标角点网格,根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图,基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径,通过上述方法有利于提高移动路径的确定效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种二维虚拟场景的路径确定方法、装置、设备和存储介质。
背景技术
在2D游戏的虚拟场景中,用户可以通过选择终点网格位置,然后为用户控制的虚拟角色规划移动路径,由于二维虚拟场景是采用网格制作成的,而对于网格地图而言,在规划移动路径时,传统的搜索算法是从起点网格开始朝周围发散寻找终点网格,并没有给出寻找方向,计算量较大,为了降低计算量,提出了A星算法,A星算法给出了寻找方向,使得搜索可以向着终点网格方向进行,但是在搜索过程中,每个处于搜索方向上的网格均要遍历8个方向,即:需要遍历与该网格相邻的8个网格,以此确定出移动路径,由于上述方式判断逻辑较多,从而导致确定移动路径的效率相对较低。
发明内容
有鉴于此,本申请实施例提供了一种二维虚拟场景的路径确定方法、装置、设备和存储介质,以提高二维虚拟场景中移动路径的确定效率,进而提高虚拟角色的寻路效率。
第一方面,本申请实施例提供了一种二维虚拟场景的路径确定方法,所述二维虚拟场景包括可通行网格以及由虚拟障碍物构成的不可通行网格,所述方法包括:
对所述可通行网格进行遍历,确定所述二维虚拟场景的第一子目标角点网格,其中,所述第一子目标角点网格在对角方向上的邻近对角网格位于不可通行网格,且分别在第一子目标角点网格的水平方向和竖直方向上与所述邻近角点网格相邻的网格为可通行网格;
根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图,所述第一直达连线对应的两个第一子目标角点网格之间的第一候选路径不经过所述不可通行网格和其它第一子目标角点网格,其中,所述第一候选路径为所述第一直达连线对应的两个第一子目标角点网格之间距离最短的路径;
基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径。
可选地,所述根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图,包括:
对于任意两个所述第一子目标角点网格,确定该两个所述第一子目标角点网格之间的所有第一候选路径;
响应于所有第一候选路径未经过所述不可通行网格和其他第一子目标角点网格,则将该两个所述第一子目标角点网格使用所述第一直达连线连接,以得到由所述第一直达连线构成的所述第一子目标角点连线图。
可选地,所述基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径,包括:
响应确定所述终点网格的操作指令,确定所述操作指令对应的目标网格,以将所述目标网格作为所述终点网格,以及基于所述虚拟角色当前所在的网格,确定所述起点网格;
确定位于目标路径上的目标不可通行网格,其中,所述目标路径包括从所述起点网格到所述终点网格中的第二候选路径,所述第二候选路径为所述起点网格与所述终点网格之间距离最短的路径;
根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径,其中,所述第二子目标角点连线图包括所述第一子目标角点连线图中由所述目标不可通行网格的第一子目标角点网格构成的第一子目标角点连线图。
可选地,所述根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径,包括:
根据所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第二直达连线,其中,所述第二直达连线对应的第一子目标角点网格和所述起点网格之间的第三候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第三候选路径为所述第二直达连线对应的第一子目标角点网格和所述起点网格之间距离最短的路径;
根据所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第三直达连线,其中,所述第三直达连线对应的第一子目标角点网格和所述终点网格之间的第四候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第四候选路径为所述第三直达连线对应的第一子目标角点网格和所述终点网格之间距离最短的路径;
根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径。
可选地,所述根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径,包括:
利用A星算法对所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图构成的路线图进行寻路,确定从所述起点网格到所述终点网格的最短路线;
当所述虚拟角色的行进方式为格子路径行进时,按照所述最短路线的走势,确定所述起点网格和所述终点网格之间经过网格数量最少的网格路径,以将所述网格路径作为所述移动路径;
当所述虚拟角色的行进方式为平滑路径行走时,对所述最短路线进行平滑处理,将所述最短路线中能够通过直达连线连接的第一子目标角点网格连接得到直线路径,以将所述直线路径作为所述移动路径。
可选地,在得到所述第一子目标角点连线图后,所述方法还包括:
在检测到所述二维虚拟场景中的不可通行网格发生变化后,确定不可通行网格发生变化后所影响到的第一子目标角点网格;
根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新。
可选地,当检测到所述二维虚拟场景中增加新增不可通行网格后,所述确定不可通行网格发生变化后所影响到的第一子目标角点网格,包括:
对各方向上包围所述新增不可通行网格的可通行网格进行遍历,确定所述第一子目标角点网格中不满足第一子目标角点网格要求的第二子目标角点网格,以将所述第二子目标角点网格作为所影响到的第一子目标角点网格。
可选地,所述根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新,包括:
将所述第二子目标角点网格对应的第一直达连线删除,得到第二子目标角点连线图;
根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图。
可选地,所述根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图,包括:
根据所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第四直达连线,以对第二子目标角点连线图进行更新得到所述第三子目标角点连线图,其中,所述第四直达连线对应的两个子目标角点网格之间的第五候选路径不经过所述不可通行网格、所述新增不可通行网格和其他子目标角点网格,所述第五候选路径为所述第四直达连线对应的两个子目标角点网格之间距离最短的路径。
可选地,当检测到所述二维虚拟场景中有不可通行网格被删除后,所述确定不可通行网格发生变化后所影响到的第一子目标角点网格,包括:
确定所述第一子目标角点网格中与被删除的不可通行网格对应的第一直达连线相关的第四子目标角点网格,以将所述第四子目标角点网格作为不可通行网格发生变化后所影响到的第一子目标角点网格。
可选地,所述根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新,包括:
将所述第四子目标角点网格对应的第一直达连线删除,得到第四子目标角点连线图;
根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图。
可选地,所述根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图,包括:
根据所述第四子目标角点连线图中包括的第四子目标角点网格,构建所述第四子目标角点连线图中包括的第四子目标角点网格之间的第五直达连线,以对所述第四子目标角点连线图进行更新得到第五子目标角点连线图,其中,所述第五直达连线图对应的两个子目标角点网格之间的第六候选路径不经过所述不可通行网格和其他子目标角点网格,所述第六候选路径为所述第五直达连线图对应的两个子目标角点网格之间距离最短的路径。
第二方面,本申请实施例提供了一种二维虚拟场景的路径确定装置,所述二维虚拟场景包括可通行网格以及由虚拟障碍物构成的不可通行网格,所述装置包括:
确定单元,用于对所述可通行网格进行遍历,确定所述二维虚拟场景中的第一子目标角点,所述第一子目标角点所在的角点网格对应的对角网格包括位于所述不可通行网格的网格,且与所述角点网格相邻的网格中分别在水平方向和竖直方向上靠近所述虚拟障碍物一侧的网格位于所述可通行网格;
构建单元,用于根据所述第一子目标角点,构建由所述第一子目标角点之间的第一直达连线构成的第一子目标角点连线图,所述第一直达连线对应的两个第一子目标角点按照所述二维虚拟场景的网格分布得到的所有第一候选路径中不经过所述不可通行网格和其他第一子目标角点所在的网格,其中,所述第一候选路径为所述第一直达连线对应的两个第一子目标角点网格之间距离最短的路径;
路径单元,用于基于虚拟角色的起点网格、为所述虚拟角色设定的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径。
可选地,所述构建单元用于根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图时,包括:
对于任意两个所述第一子目标角点网格,确定该两个所述第一子目标角点网格之间的所有第一候选路径;
响应于所有第一候选路径未经过所述不可通行网格和其他第一子目标角点网格,则将该两个所述第一子目标角点网格使用所述第一直达连线连接,以得到由所述第一直达连线构成的所述第一子目标角点连线图。
可选地,所述路径单元用于基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径时,包括:
响应确定所述终点网格的操作指令,确定所述操作指令对应的目标网格,以将所述目标网格作为所述终点网格,以及基于所述虚拟角色当前所在的网格,确定所述起点网格;
确定位于目标路径上的目标不可通行网格,其中,所述目标路径包括从所述起点网格到所述终点网格中的第二候选路径,所述第二候选路径为所述起点网格与所述终点网格之间距离最短的路径;
根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径,其中,所述第二子目标角点连线图包括所述第一子目标角点连线图中由所述目标不可通行网格的第一子目标角点网格构成的第一子目标角点连线图。
可选地,所述路径单元用于根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径时,包括:
根据所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第二直达连线,其中,所述第二直达连线对应的第一子目标角点网格和所述起点网格之间的第三候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第三候选路径为所述第二直达连线对应的第一子目标角点网格和所述起点网格之间距离最短的路径;
根据所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第三直达连线,其中,所述第三直达连线对应的第一子目标角点网格和所述终点网格之间的第四候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第四候选路径为所述第三直达连线对应的第一子目标角点网格和所述终点网格之间距离最短的路径;
根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径。
可选地,所述路径单元用于根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径时,包括:
利用A星算法对所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图构成的路线图进行寻路,确定从所述起点网格到所述终点网格的最短路线;
当所述虚拟角色的行进方式为格子路径行进时,按照所述最短路线的走势,确定所述起点网格和所述终点网格之间经过网格数量最少的网格路径,以将所述网格路径作为所述移动路径;
当所述虚拟角色的行进方式为平滑路径行走时,对所述最短路线进行平滑处理,将所述最短路线中能够通过直达连线连接的第一子目标角点网格连接得到直线路径,以将所述直线路径作为所述移动路径。
可选地,所述构建单元,还用于:
在得到所述第一子目标角点连线图后,在检测到所述二维虚拟场景中的不可通行网格发生变化后,确定不可通行网格发生变化后所影响到的第一子目标角点网格;
根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新。
可选地,所述构建单元用于确定不可通行网格发生变化后所影响到的第一子目标角点网格时,包括:
当检测到所述二维虚拟场景中增加新增不可通行网格后,对各方向上包围所述新增不可通行网格的可通行网格进行遍历,确定所述第一子目标角点网格中不满足第一子目标角点网格要求的第二子目标角点网格,以将所述第二子目标角点网格作为所影响到的第一子目标角点网格。
可选地,所述构建单元用于根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新时,包括:
将所述第二子目标角点网格对应的第一直达连线删除,得到第二子目标角点连线图;
根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图。
可选地,所述构建单元用于根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图时,包括:
根据所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第四直达连线,以对第二子目标角点连线图进行更新得到所述第三子目标角点连线图,其中,所述第四直达连线对应的两个子目标角点网格之间的第五候选路径不经过所述不可通行网格、所述新增不可通行网格和其他子目标角点网格,所述第五候选路径为所述第四直达连线对应的两个子目标角点网格之间距离最短的路径。
可选地,所述构建单元用于确定不可通行网格发生变化后所影响到的第一子目标角点网格时,包括:
当检测到所述二维虚拟场景中有不可通行网格被删除后,确定所述第一子目标角点网格中与被删除的不可通行网格对应的第一直达连线相关的第四子目标角点网格,以将所述第四子目标角点网格作为不可通行网格发生变化后所影响到的第一子目标角点网格。
可选地,所述构建单元用于根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新时,包括:
将所述第四子目标角点网格对应的第一直达连线删除,得到第四子目标角点连线图;
根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图。
可选地,所述构建单元用于根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图时,包括:
根据所述第四子目标角点连线图中包括的第四子目标角点网格,构建所述第四子目标角点连线图中包括的第四子目标角点网格之间的第五直达连线,以对所述第四子目标角点连线图进行更新得到第五子目标角点连线图,其中,所述第五直达连线图对应的两个子目标角点网格之间的第六候选路径不经过所述不可通行网格和其他子目标角点网格,所述第六候选路径为所述第五直达连线图对应的两个子目标角点网格之间距离最短的路径。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面中任一所述的二维虚拟场景的路径确定方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面中任一所述的二维虚拟场景的路径确定方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请中,确定移动路径之前,先对二维虚拟场景进行预处理,确定出各虚拟障碍物对应的第一子目标角点网格,然后再基于第一子目标角点网格构建第一子目标角点连线图,然后在基于虚拟角色的起点网格、所述虚拟角色的终点网格和第一子目标角点连线图,确定该虚拟角色的移动路径,由于第一子目标角点连线图可以使虚拟角色避过虚拟障碍物,因此通过第一子目标角点连线图确定出来的移动路径是可以通行的,并且,由于第一子目标角点连线图是基于第一子目标角点网格确定的,因此在确定第一子目标角点连线图的过程中无需对不相关的网格进行搜索,进而有效缩减了搜索空间,并且在确定第一子目标角点连线图的过程中是基于第一直达连线构建的,由于在确定第一直达连线时可以减少网格的搜索方向,即:第一候选路径之外的其它路径,以及经过不可通行网格和其他第一子目标角点网格的方向是不需要搜索的,因此有利于减少网格搜索方向,进而有利于提高移动路径的确定效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提出的一种二维虚拟场景的示意图;
图2为本申请实施例一提供的一种二维虚拟场景的路径确定方法的流程示意图;
图3为本申请实施例一提供的一种二维虚拟场景的示意图;
图4为本申请实施例一提供的一种二维虚拟场景栅格化后的示意图;
图5为本申请实施例一提供的另一种二维虚拟场景的示意图;
图6为本申请实施例一提供的一种第一子目标角点连线图的示意图;
图7为本申请实施例一提供的另一种二维虚拟场景的路径确定方法的流程示意图;
图8为本申请实施例一提供的另一种二维虚拟场景的示意图;
图9为本申请实施例一提供的另一种二维虚拟场景的路径确定方法的流程示意图;
图10为本申请实施例一提供的另一种二维虚拟场景的示意图;
图11为本申请实施例一提供的另一种虚拟场景的路径确定方法的流程示意图;
图12为本申请实施例一提供的另一种二维虚拟场景的示意图;
图13为本申请实施例一提供的另一种二维虚拟场景的示意图;
图14为本申请实施例一提供的另一种二维虚拟场景的示意图;
图15为本申请实施例一提供的另一种二维虚拟场景的示意图;
图16为本申请实施例一提供的另一种二维虚拟场景的示意图;
图17为本申请实施例一提供的另一种二维虚拟场景的示意图;
图18为本申请实施例二提供的一种二维虚拟场景的路径确定装置的结构示意图;
图19为本申请实施例三提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,本申请预先进行以下说明:
图1为本申请实施例提出的一种二维虚拟场景的示意图,如图1所示,二维虚拟场景是由网格构成的,图1中与标记为B的网格相邻的网格有8个,如图1中填充图案的网格,当虚拟角色按照二维虚拟场景的网格分布行进时,如果虚拟角色当前在标识为B所在的网格时,则可以从网格B移动到上述8个网格中的任意一个,并且每次移动仅能移动到相邻的网格上,当需要移动到目标网格上时,如果目标网格和网格B位于同一行网格,且中间间隔五个网格,那么则需要连续移动五个网格的距离才能到达目标网格,在这样的行进模式下,虚拟角色并不能自由行动,需要按照网格的排布方式进行移动。
图1所示,在现有技术中,在利用A星算法确定标识B所在的网格的下一个网格时,需要遍历图1中所有填充图案的网格,即:要遍历8个方向,因此即使A星算法给出了搜索方向,但是在对某个网格进行搜索的过程中,判断逻辑仍相对较多,进而降低了移动路径的确定效率。
为了解决上述问题,本申请提出了一种二维虚拟场景的路径确定方法、装置、设备和存储介质,通过确定第一子目标角点网格缩减搜索空间,然后在利用第一子目标角点网格之间的第一直达连线来减少网格的搜索方向,而通过第一直达连线构建的第一子目标角点连线图可以使虚拟角色避过障碍物,从而使基于第一子目标角点连线图得到的移动路径时有利于提高路径的确定效率。
实施例一
图2为本申请实施例一提供的一种二维虚拟场景的路径确定方法的流程示意图,如图2所示,所述二维虚拟场景包括可通行网格以及由虚拟障碍物构成的不可通行网格,其中,不可通行网格内设置有虚拟障碍物,即:被虚拟障碍物占用的网格可以作为不可通行网格,该方法包括以下步骤:
步骤201、对所述可通行网格进行遍历,确定所述二维虚拟场景的第一子目标角点网格,其中,所述第一子目标角点网格在对角方向上的邻近对角网格位于不可通行网格,且分别在第一子目标角点网格的水平方向和竖直方向上与所述邻近角点网格相邻的网格为可通行网格。
步骤202、根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图,所述第一直达连线对应的两个第一子目标角点网格之间的各第一候选路径不经过所述不可通行网格和其它第一子目标角点网格,其中,所述第一候选路径为所述第一直达连线对应的两个第一子目标角点网格之间距离最短的路径。
步骤203、基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径。
具体的,图3为本申请实施例一提供的一种二维虚拟场景的示意图,图4为本申请实施例一提供的一种二维虚拟场景栅格化后的示意图,如图3所示,二维虚拟场景中包括虚拟障碍物A和虚拟障碍物B,以虚拟障碍物A为例进行说明,虚拟障碍物A可以是游戏中的建筑物、山体、河流等虚拟物体,虚拟障碍物A在二维虚拟场景中会占据若干个网格,有的网格可能会全部占据,有的网格可能进占据一部分,无论该网格被虚拟障碍物A占据了多少比例,只要该网格与虚拟障碍物A有重合的部分,那么虚拟角色就不能通过该网格,被虚拟障碍物A占据的多个网格则构成不可通行网格,图3中包括虚拟障碍物A和虚拟障碍物B,因此图3中包括两个不可通行网格,图3中的其他区域则为可通行网格,图3中二维虚拟场景栅格化后得到如图4所示的内容,如图4所示,虚拟障碍物A和虚拟障碍物B所覆盖的网格为不可通行网格,其他网格构成的区域为可通行网格。
图5为本申请实施例一提供的另一种二维虚拟场景的示意图,如图5所示,对图4中的可通行网格进行遍历,可以确定出如图5中S0-S7所示的第一子目标角点网格,在确定某个网格是否可以作为第一子目标角点网格时,需要先确定与该网格相邻的邻近对角网格(即:与该网格的相邻的,且处于该网格右下侧的网格、处于该网格右上侧的网格、处于该网格左下侧的网格和处于该网格左上侧的网格均可以作为与该网格相邻的邻近对角网格)是否处于不可通行网格,并且与该网格在水平方向和竖直方向相邻的两个网格是否能够夹住该邻近对角网格,同时这两个网格是位于可通行网格,如果对角网格处于不可通行网格,且上述提到的两个网格能够夹住该邻近对角网格,同时上述提到的两个网格位于可通行网格,则该网格所在的网格可以作为第一子目标角点网格,该第一子目标角点网格与虚拟障碍物所在网格区域的一个角成对角分布,如图5中S0-S7所在的网格与虚拟障碍物所在网格区域的角成对角分布,以S0为例,S0所在的网格为第一子目标角点网格,该第一子目标角点网格的对角网格被虚拟障碍物A占据,因此该对角网格位于不可通行网格,并且,与S0所在网格相邻的网格中在水平方向上靠近虚拟障碍物A的网格S8位于可通行网格,与S0所在网格相邻的网格中在竖直方向上靠近虚拟障碍物A的网格S9位于可通行网格,S8和S9这两个网格夹住了S0的临近对角网格,因此可以将S0所在的网格作为第一子目标角点网格。
由于第一子目标角点网格能够限定出虚拟障碍物(即:不可通行网格)的范围,因此在确定出二维虚拟场景中的所有第一子目标角点网格后,可以利用第一子目标角点网格构建第一子目标角点连线图,在构建第一子目标角点连线图时,需要满足以下限定:两个第一子目标角点网格能够通过一条直线直接连接,即:可以通过第一直达连线连接,且该第一直达连线连接的两个第一子目标角点网格按照二维虚拟场景的网格分布得到的所有第一候选路径均不经过不可通行网格和其他第一子目标角点网格,其中,第一候选路径为第一直达连线对应的两个第一子目标角点网格之间距离最短的路径,距离最短是指按照二维虚拟场景的网格分布移动时的距离最短,以图5中的S0为例,能够与S0建立第一直达连线的第一子目标角点网格包括S1和S3,S0分别与S2、S5、S6、S7的直接连线会经过不可通行网格,S0和S4虽然可以通过直接连线连接,但是第一候选路径中包含经过S1的路径,因此S0和S2、S4、S5、S6、S7之间无法建立第一直达连线,因此构建出的第一子目标角点连线图可以如图6所示,图6为本申请实施例一提供的一种第一子目标角点连线图的示意图,S0-S7构建的第一子目标角点连线图如图6中虚线构成的图形所示,图6中的任一一条虚线表示一条第一直达连线,如图6所示,构建出的第一子目标角点连线图是围绕虚拟障碍物构建的,当在虚拟角色寻路过程中,如果按照第一子目标角点连线图中给出的路径寻路,那么有利于减少路径的长度,从而使虚拟角色快速达到目的地,且过程中不会碰触到虚拟障碍物,并且,任一一条第一直达路径均可以给出搜索方向,因此可以减少寻路过程中的逻辑判断次数,进而有利于提高寻路效率。
需要说明的是,构建第一子目标角点连线图的过程可以在游戏的服务器在未向用户提供服务时构建完成,如:在游戏更新的过程中构建完成,也可以是在游戏过程中,当用户设定好虚拟角色的终点网格后构建的,然后在得到第一子目标角点连线图后,基于虚拟角色当前在虚拟场景中的起点网格、为虚拟角色设定的终点网格和得到第一子目标角点连线图确定虚拟角色的移动路径。
在一个可行的实施方案中,在执行步骤202时,可以先对于任意两个所述第一子目标角点网格,确定该两个所述第一子目标角点网格之间的所有第一候选路径,然后响应于所有第一候选路径未经过所述不可通行网格和其他第一子目标角点网格,则将该两个所述第一子目标角点网格使用所述第一直达连线连接,以得到由所述第一直达连线构成的所述第一子目标角点连线图。
在一个可行的实施方案中,图7为本申请实施例一提供的另一种二维虚拟场景的路径确定方法的流程示意图,如图7所示,在执行步骤203时可以通过以下步骤实现:
步骤701、响应确定所述终点网格的操作指令,确定所述操作指令对应的目标网格,以将所述目标网格作为所述终点网格,以及基于所述虚拟角色当前所在的网格,确定所述起点网格。
步骤702、确定位于目标路径上的目标不可通行网格,其中,所述目标路径包括从所述起点网格到所述终点网格中的各第二候选路径,所述第二候选路径为所述起点网格与所述终点网格之间距离最短的路径。
步骤703、根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径,其中,所述第二子目标角点连线图包括所述第一子目标角点连线图中由所述目标不可通行网格的第一子目标角点网格构成的第一子目标角点连线图。
具体的,为了进一步提高用户在游戏过程中路径的确定效率,可以在用户设定终点网格之前就构建好第一子目标角点连线图,例如:在游戏更新过程中就构建好第一子目标角点连线图,然后在用户设定好终点网格后,就可以直接利用构建好的第一子目标角点连线图确定移动路径。
在确定移动路径时,需要用户先确定出虚拟角色将要去到的位置(即:用户设定的终点网格),当用户在二维虚拟场景上设定好上述位置后,将该位置作为用户设定的终点网格,并且获取虚拟角色当前在二维虚拟场景上的位置,以将该位置作为起点网格,然后确定从该起点网格到该终点网格的过程中,能够对移动路径产生影响的目标虚拟障碍物(即:目标不可通行网格),由于移动路径一般都是沿最短路径行进的,因此在确定目标虚拟障碍物时,可以先确定出按照二维虚拟场景的网格分布得到的从该起点网格到该终点网格的所有的第二候选路径(即:按照二维虚拟场景的网格分布得到的从该起点网格到该终点网格的最短路径),然后再确定与所有第二候选路径有交叠的虚拟障碍物,以将该虚拟障碍物作为目标虚拟障碍物。图8为本申请实施例一提供的另一种二维虚拟场景的示意图,如图8所示,虚拟角色当前所在的位置为网格C,并且用户设定网格D为终点网格,那么虚拟障碍物A和虚拟障碍物B会与从网格C到网格D之间的最短路径有交叠,那么可以将虚拟障碍物A和虚拟障碍物B作为目标虚拟障碍物。
在确定出目标虚拟障碍物后,可以确定目标虚拟障碍物构成的第二子目标角点连线图(第二子目标角点连线图为第一子目标角点连线图的一部分),然后基于上述起点网格、终点网格,以及第二子目标角点连线图确定移动路径,如图8所述,如果图8中还包括虚拟障碍物E(未在图中示出),并且虚拟障碍物E不会与从网格C到网格D之间的最短路径有任何交叠,此时可以将虚拟障碍物A和虚拟障碍物B的第一子目标角点网格构成的第一子目标角点连线图作为第二子目标角点连线图(第二子目标角点连线图可参考图6所示的第一子目标角点连线图),然后基于得到的第二子目标角点连线图确定虚拟角色的移动路径,由于第二子目标角点连线图是围绕目标虚拟障碍物构成的,因此基于第二子目标角点连线图得到的移动路径是不会影响虚拟角色的行进的,并且还可以得到从起点网格到终点网格的最短路径。
在一个可行的实施方案中,图9为本申请实施例一提供的另一种二维虚拟场景的路径确定方法的流程示意图,如图9所示,在执行步骤703时,可以通过以下步骤实现:
步骤901、根据所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第二直达连线,其中,所述第二直达连线对应的第一子目标角点网格和所述起点网格之间的各第三候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第三候选路径为所述第二直达连线对应的第一子目标角点网格和所述起点网格之间距离最短的路径。
步骤902、根据所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第三直达连线,其中,所述第三直达连线对应的第一子目标角点网格和所述终点网格之间的各第四候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第四候选路径为所述第三直达连线对应的第一子目标角点网格和所述终点网格之间距离最短的路径。
步骤903、根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径。
具体的,在得到起点网格、终点网格和第二子目标角点连线图后,对于起点网格,确定从该起点网格到第二子目标角点连线图中的第一子目标角点之间的第二直达连线图,其中构建的第二直达连线图需要满足以下条件:第二直达连线图对应的两个网格能够通过一条直线直接连接,即:可以通过第二直达连线直接连接,且该第二直达连线连接的两个网格按照二维虚拟场景的网格分布得到的所有第三候选路径(即:最短路径)均不经过不可通行网格和第二子目标角点连线图中其他第一子目标角点网格,图10为本申请实施例一提供的另一种二维虚拟场景的示意图,如图10所示,网格C为起点网格、网格D为终点网格,虚拟障碍物A和虚拟障碍物B对应的第二子目标角点连线图如图10中第一子目标角点S0-S7构成的连线图,如图10所示,网格C能够与S0和S1通过第二直达连线直接连接(如图10中S0与网格C之间的虚线所示,以及图10中S1与网格C之间的虚线所示),并且,网格C与S0之间的第二直达连线不经过虚拟障碍物A和虚拟障碍物B,以及不经过S1-S7所在的网格。
第三直达连线为图10中网格D与S5之间的虚线,以及网格D与S6之间的虚线所示,关于第三直达连线可参考图10中第二直达连线的相关说明,在此不再详细赘述。
在得到第二直达连线、第三直达连线和第二子目标角点连线图后,可以通过如图10所示的图形得到从起点网格到终点网格的最短路径,且该最短路径不会受到虚拟障碍物的阻挡。
在一个可行的实施方案中,图11为本申请实施例一提供的另一种虚拟场景的路径确定方法的流程示意图,如图11所示,在执行步骤903时,可以通过以下步骤实现:
步骤1101、利用A星算法对所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图构成的路线图进行寻路,确定从所述起点网格到所述终点网格的最短路线。
步骤1102、当所述虚拟角色的行进方式为格子路径行进时,按照所述最短路线的走势,确定所述起点网格和所述终点网格之间经过网格数量最少的网格路径,以将所述网格路径作为所述移动路径。
步骤1103、当所述虚拟角色的行进方式为平滑路径行走时,对所述最短路线进行平滑处理,将所述最短路线中能够通过直达连线连接的第一子目标角点网格连接得到直线路径,以将所述直线路径作为所述移动路径。
具体的,通过A星算法可以得到从起点网格到终点网格之间的最短路径,该最短路径是通过直达连线构建出来的,但是在游戏的寻路过程中,需要根据虚拟角色的行进方式具体规划移动路径,以便最后得到的路径在符合最短路径的基础上还要满足虚拟角色的移动方式,例如:当虚拟角色可以沿任意方向自由行走时,可以对上述得到的最短路径进行平滑处理,以将最短路径中能够通过直达连线连接的第一子目标角点网格进行连接,得到直线路径,从而使最终得到的移动路径的距离最短,虚拟角色在沿该移动路径行进时,虚拟角色是沿着直线路径行进的,即:虚拟角色按照平滑路径的行进方式行走的,当虚拟角色的进行方式为按照二维虚拟场景的网格分布情况行进时,即:虚拟角色只能向相邻的网格移动,在移动时一次移动只能移动一个网格的距离,这此种移动方式的情况下,需要根据上述得到的最短路径的路线走势,确定从起点网格到终点网格所要移动的网格数量最少的网格路径,以将该网格路径作为为虚拟角色确定出来的移动路径,虚拟角色在沿该移动路径行进时,是按照移动路径上的网格分布情况移动的,即:虚拟角色按照格子路径的行进方式行走的。
例如:图12为本申请实施例一提供的另一种二维虚拟场景的示意图,如图12所示,确定出来的最短路径如图12所示的虚线所示,当虚拟角色的行进方式为格子路径行进时,确定出来的移动路径如图13中被填充的网格,以及网格C、网格D以及S0、S1、S4和S5所在网格所构成的路径所示,图13为本申请实施例一提供的另一种二维虚拟场景的示意图,当虚拟角色的行进方式为平滑路径行走时,确定出来的移动路径如图14中实线,以及网格C、网格D以及S0、S4和S5所在网格所构成的路径所示,图14为本申请实施例一提供的另一种二维虚拟场景的示意图,即:图14是对图12中的虚线进行平滑处理后得到的路径。
需要说明的是,本申请中的二维虚拟场景是按照网格的形式构建出来的,但是虚拟角色的行走方式可以根据自身需求进行设定,即:虚拟角色的行走方式可以按照网格的部分情况行进,即:格子路径行进,也可以是沿任意方向进行自由行走,即:平滑路径行走,在此不做具体限定。
在一个可行的实施方案中,在得到第一子目标角点连线图后,可以先检测到所述二维虚拟场景中的不可通行网格发生变化后,确定不可通行网格发生变化后所影响到的第一子目标角点网格,然后再根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新。
具体的,在第一子目标角点连线图构建好之后,如果二维虚拟场景中的不可通行网格发生变化,如:新增或删除虚拟障碍物,则会新增或删除不可通行网格,这样会导致二维虚拟场景中第一子目标角点连线图随之发生变化,如:某些第一子目标角点网格不再满足定义要求,或者某些第一直达连线不再满足要求,此时需要在原有的第一子目标角点连线图的基础上对第一直达连线进行更新,以使更新后的连线图符合变化后的二维虚拟场景。
在一个可行的实施方案中,当检测到所述二维虚拟场景中增加新增不可通行网格后,执行确定不可通行网格发生变化后所影响到的第一子目标角点网格的步骤时,对各方向上包围所述新增不可通行网格的可通行网格进行遍历,确定所述第一子目标角点网格中不满足第一子目标角点网格要求的第二子目标角点网格,以将所述第二子目标角点网格作为所影响到的第一子目标角点网格。
具体的,二维虚拟场景是可以进行更新的,更新时可以在二维虚拟场景中增加新的虚拟障碍物(即:新增不可通行网格),新增的虚拟障碍物会影响到之前得到的第一子目标角点连线图,此时需要对包围新增不可通行网格的可通行网格进行遍历,以确定出第一子目标角点网格中不满足第一子目标角点网格要求的第二子目标角点网格,以将第二子目标角点网格作为所影响到的第一子目标角点网格。
在一个可行的实施方案中,在执行根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新的步骤时,先将所述第二子目标角点网格对应的第一直达连线删除,得到第二子目标角点连线图,然后再根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图。
在一个可行的实施方案中,在执行根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图时,根据所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第四直达连线,以对第二子目标角点连线图进行更新得到所述第三子目标角点连线图,其中,所述第四直达连线对应的两个子目标角点网格之间的各第五候选路径不经过所述不可通行网格、所述新增不可通行网格和其他子目标角点网格,所述第五候选路径为所述第四直达连线对应的两个子目标角点网格之间距离最短的路径。
对于新增不可通行网格采用以下示例进行说明:
图15为本申请实施例一提供的另一种二维虚拟场景的示意图,如图15所示,在检测到二维虚拟场景中增加新增虚拟障碍物F(虚拟障碍物F占据的网格为新增不可通行网格)后,对包围新增虚拟障碍物F的网格进行遍历,判断虚拟障碍物A和虚拟障碍物B的第一子目标角点网格中是否存在不满足第一子目标角点网格要求的第二子目标角点网格(第一子目标角点网格的要求可参考与图5相关的内容),如果存在,则说明新增虚拟障碍物F破坏了之前得到的第一子目标角点连线图,此时需要将之前得到的第一子目标角点连线图中与第二子目标角点网格相关的第一直达连线删除,得到第二子目标角点连线图,然后在第二子目标角点连线图的基础上,构建新增虚拟障碍物F包括的第二子目标角点网格S8-S10和第二子目标角点连线图中的第一子目标角点网格之间的第四直达连线,从而得到第三子目标角点连线图,构建第四直达连线的原则可参考构建第一直达连线时的规则,构建出来的第三子目标角点连线图如图15中的虚线所示。
在得到第三子目标角点连线图后,在进行寻路时,可以根据该第三子目标角点连线图确定移动路径。
图16为本申请实施例一提供的另一种二维虚拟场景的示意图,如图16所示,当新增加的新增虚拟障碍物F并未对第一子目标角点连线图中第一子目标角点网格造成影响,仅对第一直达连线造成影响,那么将受影响的第一直达连线删除,然后再构建受影响的第一直达连线对应的第一子目标角点网格与新增虚拟障碍物F,以及S8-S11之间的直达连线,从而得到新的子目标角点连线图,新的子目标角点连线图可参考图16中虚线所构成的连线图。
图17为本申请实施例一提供的另一种二维虚拟场景的示意图,如图17所示,当新增加的新增虚拟障碍物F即未对第一子目标角点连线图中第一子目标角点网格造成影响,又未对第一直达连线造成影响,那么可以在完整的第一子目标角点连线图的基础上构建的新的子目标角点连线图,如图17所示,在完整的第一子目标角点连线图的基础上构建新增虚拟障碍物F中的子目标角点S8-S11与第一子目标角点连线图中的第一子目标角点网格之间的直达连线,最终得到的新的子目标角点连线图如图17中虚线所构成的连线图。
在一个可行的实施方案中,当检测到所述二维虚拟场景中有不可通行网格被删除后,在执行确定不可通行网格发生变化后所影响到的第一子目标角点网格的步骤时,确定所述第一子目标角点网格中与被删除的不可通行网格对应的第一直达连线相关的第四子目标角点网格,以将所述第四子目标角点网格作为不可通行网格发生变化后所影响到的第一子目标角点网格。
具体的,二维虚拟场景中不仅可以增加新的虚拟障碍物,还可以对二维虚拟场景中已添加的虚拟障碍物进行删除(即:删除不可通行网格),在对虚拟障碍物进行删除后,需要对被删除的虚拟障碍物相关的第一直达连线删除,然后确定出被删除的第一直达连线相关的子目标角点网格,即:第四子目标角点网格,以对第四子目标角点网格之间构建直达连线,从而对连线图进行更新。
在一个可行的实施方案中,在执行根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新时,可以先将所述第四子目标角点网格对应的第一直达连线删除,得到第四子目标角点连线图,然后再根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图。
在一个可行的实施方案中,在执行根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图的步骤时,根据所述第四子目标角点连线图中包括的第四子目标角点网格,构建所述第四子目标角点连线图中包括的第四子目标角点网格之间的第五直达连线,以对所述第四子目标角点连线图进行更新得到第五子目标角点连线图,其中,所述第五直达连线图对应的两个子目标角点网格之间的各第六候选路径不经过所述不可通行网格和其他子目标角点网格,所述第六候选路径为所述第五直达连线图对应的两个子目标角点网格之间距离最短的路径。
关于新构建直达连线的原则可参考第一直达连线构建时的原则,在此不再详细说明,以图16为例,将虚拟障碍物F删除后,新构建得到的子目标角点连线图可参考图6所示。
需要补充说明的是,图1、图3、图4-图6、图8、图10、图12-图17中的网格大小是相同的。
实施例二
图18为本申请实施例二提供的一种二维虚拟场景的路径确定装置的结构示意图,所述二维虚拟场景包括可通行网格以及由虚拟障碍物构成的不可通行网格,所述装置包括:
确定单元1801,用于对所述可通行网格进行遍历,确定所述二维虚拟场景中的第一子目标角点,所述第一子目标角点所在的角点网格对应的对角网格包括位于所述不可通行网格的网格,且与所述角点网格相邻的网格中分别在水平方向和竖直方向上靠近所述虚拟障碍物一侧的网格位于所述可通行网格;
构建单元1802,用于根据所述第一子目标角点,构建由所述第一子目标角点之间的第一直达连线构成的第一子目标角点连线图,所述第一直达连线对应的两个第一子目标角点按照所述二维虚拟场景的网格分布得到的所有第一候选路径中不经过所述不可通行网格和其他第一子目标角点所在的网格,其中,所述第一候选路径为所述第一直达连线对应的两个第一子目标角点网格之间距离最短的路径;
路径单元1803,用于基于虚拟角色的起点网格、为所述虚拟角色设定的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径。
在一个可行的实施方案中,所述构建单元1802用于根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图时,包括:
对于任意两个所述第一子目标角点网格,确定该两个所述第一子目标角点网格之间的所有第一候选路径;
响应于所有第一候选路径未经过所述不可通行网格和其他第一子目标角点网格,则将该两个所述第一子目标角点网格使用所述第一直达连线连接,以得到由所述第一直达连线构成的所述第一子目标角点连线图。
在一个可行的实施方案中,所述路径单元1803用于基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径时,包括:
响应确定所述终点网格的操作指令,确定所述操作指令对应的目标网格,以将所述目标网格作为所述终点网格,以及基于所述虚拟角色当前所在的网格,确定所述起点网格;
确定位于目标路径上的目标不可通行网格,其中,所述目标路径包括从所述起点网格到所述终点网格中的各第二候选路径,所述第二候选路径为所述起点网格与所述终点网格之间距离最短的路径;
根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径,其中,所述第二子目标角点连线图包括所述第一子目标角点连线图中由所述目标不可通行网格的第一子目标角点网格构成的第一子目标角点连线图。
在一个可行的实施方案中,所述路径单元1803用于根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径时,包括:
根据所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第二直达连线,其中,所述第二直达连线对应的第一子目标角点网格和所述起点网格之间的各第三候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第三候选路径为所述第二直达连线对应的第一子目标角点网格和所述起点网格之间距离最短的路径;
根据所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第三直达连线,其中,所述第三直达连线对应的第一子目标角点网格和所述终点网格之间的各第四候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第四候选路径为所述第三直达连线对应的第一子目标角点网格和所述终点网格之间距离最短的路径;
根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径。
在一个可行的实施方案中,所述路径单元1803用于根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径时,包括:
利用A星算法对所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图构成的路线图进行寻路,确定从所述起点网格到所述终点网格的最短路线;
当所述虚拟角色的行进方式为格子路径行进时,按照所述最短路线的走势,确定所述起点网格和所述终点网格之间经过网格数量最少的网格路径,以将所述网格路径作为所述移动路径;
当所述虚拟角色的行进方式为平滑路径行走时,对所述最短路线进行平滑处理,将所述最短路线中能够通过直达连线连接的第一子目标角点网格连接得到直线路径,以将所述直线路径作为所述移动路径。
在一个可行的实施方案中,所述构建单元1802,还用于:
在得到所述第一子目标角点连线图后,在检测到所述二维虚拟场景中的不可通行网格发生变化后,确定不可通行网格发生变化后所影响到的第一子目标角点网格;
根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新。
在一个可行的实施方案中,所述构建单元1802用于确定不可通行网格发生变化后所影响到的第一子目标角点网格时,包括:
当检测到所述二维虚拟场景中增加新增不可通行网格后,对各方向上包围所述新增不可通行网格的可通行网格进行遍历,确定所述第一子目标角点网格中不满足第一子目标角点网格要求的第二子目标角点网格,以将所述第二子目标角点网格作为所影响到的第一子目标角点网格。
在一个可行的实施方案中,所述构建单元1802用于根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新时,包括:
将所述第二子目标角点网格对应的第一直达连线删除,得到第二子目标角点连线图;
根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图。
在一个可行的实施方案中,所述构建单元1802用于根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图时,包括:
根据所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第四直达连线,以对第二子目标角点连线图进行更新得到所述第三子目标角点连线图,其中,所述第四直达连线对应的两个子目标角点网格之间的各第五候选路径不经过所述不可通行网格、所述新增不可通行网格和其他子目标角点网格,所述第五候选路径为所述第四直达连线对应的两个子目标角点网格之间距离最短的路径。
在一个可行的实施方案中,所述构建单元1802用于确定不可通行网格发生变化后所影响到的第一子目标角点网格时,包括:
当检测到所述二维虚拟场景中有不可通行网格被删除后,确定所述第一子目标角点网格中与被删除的不可通行网格对应的第一直达连线相关的第四子目标角点网格,以将所述第四子目标角点网格作为不可通行网格发生变化后所影响到的第一子目标角点网格。
在一个可行的实施方案中,所述构建单元1802用于根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新时,包括:
将所述第四子目标角点网格对应的第一直达连线删除,得到第四子目标角点连线图;
根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图。
在一个可行的实施方案中,所述构建单元1802用于根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图时,包括:
根据所述第四子目标角点连线图中包括的第四子目标角点网格,构建所述第四子目标角点连线图中包括的第四子目标角点网格之间的第五直达连线,以对所述第四子目标角点连线图进行更新得到第五子目标角点连线图,其中,所述第五直达连线图对应的两个子目标角点网格之间的各第六候选路径不经过所述不可通行网格和其他子目标角点网格,所述第六候选路径为所述第五直达连线图对应的两个子目标角点网格之间距离最短的路径。
关于实施例二的原理解释可参考实施例一的相关说明,在此不再详细说明。
实施例三
图19为本申请实施例三提供的一种电子设备的结构示意图,包括:处理器1901、存储介质1902和总线1903,所述存储介质1902存储有所述处理器1901可执行的机器可读指令,当电子设备运行上述的游戏中的状态生成方法时,所述处理器1901与所述存储介质1902之间通过总线1903通信,所述处理器1901执行所述机器可读指令,以执行实施例一中所示的方法。
关于具体执行的方法步骤和原理参见实施例一的说明,在此不再详细赘述。
实施例四
本申请实施例四还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行实施例一中所示的方法和步骤。
关于具体执行的方法步骤和原理参见实施例一的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种二维虚拟场景的路径确定方法,其特征在于,所述二维虚拟场景包括可通行网格以及由虚拟障碍物构成的不可通行网格,所述方法包括:
对所述可通行网格进行遍历,确定所述二维虚拟场景的第一子目标角点网格,其中,所述第一子目标角点网格在对角方向上的邻近对角网格位于不可通行网格,且分别在第一子目标角点网格的水平方向和竖直方向上与所述邻近角点网格相邻的网格为可通行网格;
根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图,所述第一直达连线对应的两个第一子目标角点网格之间的第一候选路径不经过所述不可通行网格和其它第一子目标角点网格,其中,所述第一候选路径为所述第一直达连线对应的两个第一子目标角点网格之间距离最短的路径;
基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一子目标角点网格,构建由所述第一子目标角点网格之间的第一直达连线构成的第一子目标角点连线图,包括:
对于任意两个所述第一子目标角点网格,确定该两个所述第一子目标角点网格之间的所有第一候选路径;
响应于所有第一候选路径未经过所述不可通行网格和其他第一子目标角点网格,则将该两个所述第一子目标角点网格使用所述第一直达连线连接,以得到由所述第一直达连线构成的所述第一子目标角点连线图。
3.如权利要求1所述的方法,其特征在于,所述基于虚拟角色的起点网格、所述虚拟角色的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径,包括:
响应确定所述终点网格的操作指令,确定所述操作指令对应的目标网格,以将所述目标网格作为所述终点网格,以及基于所述虚拟角色当前所在的网格,确定所述起点网格;
确定位于目标路径上的目标不可通行网格,其中,所述目标路径包括从所述起点网格到所述终点网格中的第二候选路径,所述第二候选路径为所述起点网格与所述终点网格之间距离最短的路径;
根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径,其中,所述第二子目标角点连线图包括所述第一子目标角点连线图中由所述目标不可通行网格的第一子目标角点网格构成的第一子目标角点连线图。
4.如权利要求3所述的方法,其特征在于,所述根据所述起点网格、所述终点网格和第二子目标角点连线图,确定所述虚拟角色的移动路径,包括:
根据所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述起点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第二直达连线,其中,所述第二直达连线对应的第一子目标角点网格和所述起点网格之间的第三候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第三候选路径为所述第二直达连线对应的第一子目标角点网格和所述起点网格之间距离最短的路径;
根据所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述终点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第三直达连线,其中,所述第三直达连线对应的第一子目标角点网格和所述终点网格之间的第四候选路径中不经过所述不可通行网格和所述第二子目标角点连线图中其他第一子目标角点网格,所述第四候选路径为所述第三直达连线对应的第一子目标角点网格和所述终点网格之间距离最短的路径;
根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径。
5.如权利要求4所述的方法,其特征在于,所述根据所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图,确定所述虚拟角色的移动路径,包括:
利用A星算法对所述第二直达连线、所述第三直达连线和所述第二子目标角点连线图构成的路线图进行寻路,确定从所述起点网格到所述终点网格的最短路线;
当所述虚拟角色的行进方式为格子路径行进时,按照所述最短路线的走势,确定所述起点网格和所述终点网格之间经过网格数量最少的网格路径,以将所述网格路径作为所述移动路径;
当所述虚拟角色的行进方式为平滑路径行走时,对所述最短路线进行平滑处理,将所述最短路线中能够通过直达连线连接的第一子目标角点网格连接得到直线路径,以将所述直线路径作为所述移动路径。
6.如权利要求1所述的方法,其特征在于,在得到所述第一子目标角点连线图后,所述方法还包括:
在检测到所述二维虚拟场景中的不可通行网格发生变化后,确定不可通行网格发生变化后所影响到的第一子目标角点网格;
根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新。
7.如权利要求6所述的方法,其特征在于,当检测到所述二维虚拟场景中增加新增不可通行网格后,所述确定不可通行网格发生变化后所影响到的第一子目标角点网格,包括:
对各方向上包围所述新增不可通行网格的可通行网格进行遍历,确定所述第一子目标角点网格中不满足第一子目标角点网格要求的第二子目标角点网格,以将所述第二子目标角点网格作为所影响到的第一子目标角点网格。
8.如权利要求7所述的方法,其特征在于,所述根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新,包括:
将所述第二子目标角点网格对应的第一直达连线删除,得到第二子目标角点连线图;
根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图。
9.如权利要求8所述的方法,其特征在于,所述根据所述第二子目标角点连线图和所述新增不可通行网格对应的第三子目标角点网格,构建第三子目标角点连线图,包括:
根据所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格,构建所述第三子目标角点网格和所述第二子目标角点连线图中的第一子目标角点网格之间的第四直达连线,以对第二子目标角点连线图进行更新得到所述第三子目标角点连线图,其中,所述第四直达连线对应的两个子目标角点网格之间的第五候选路径不经过所述不可通行网格、所述新增不可通行网格和其他子目标角点网格,所述第五候选路径为所述第四直达连线对应的两个子目标角点网格之间距离最短的路径。
10.如权利要求6所述的方法,其特征在于,当检测到所述二维虚拟场景中有不可通行网格被删除后,所述确定不可通行网格发生变化后所影响到的第一子目标角点网格,包括:
确定所述第一子目标角点网格中与被删除的不可通行网格对应的第一直达连线相关的第四子目标角点网格,以将所述第四子目标角点网格作为不可通行网格发生变化后所影响到的第一子目标角点网格。
11.如权利要求10所述的方法,其特征在于,所述根据不可通行网格发生的变化,对所影响到的第一子目标角点网格对应的第一直达连线进行更新,包括:
将所述第四子目标角点网格对应的第一直达连线删除,得到第四子目标角点连线图;
根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图。
12.如权利要求11所述的方法,其特征在于,所述根据所述第四子目标角点连线图中包括的第一子目标角点网格,构建第五子目标角点连线图,包括:
根据所述第四子目标角点连线图中包括的第四子目标角点网格,构建所述第四子目标角点连线图中包括的第四子目标角点网格之间的第五直达连线,以对所述第四子目标角点连线图进行更新得到第五子目标角点连线图,其中,所述第五直达连线图对应的两个子目标角点网格之间的第六候选路径不经过所述不可通行网格和其他子目标角点网格,所述第六候选路径为所述第五直达连线图对应的两个子目标角点网格之间距离最短的路径。
13.一种二维虚拟场景的路径确定装置,其特征在于,所述二维虚拟场景包括可通行网格以及由虚拟障碍物构成的不可通行网格,所述装置包括:
确定单元,用于对所述可通行网格进行遍历,确定所述二维虚拟场景中的第一子目标角点,所述第一子目标角点所在的角点网格对应的对角网格包括位于所述不可通行网格的网格,且与所述角点网格相邻的网格中分别在水平方向和竖直方向上靠近所述虚拟障碍物一侧的网格位于所述可通行网格;
构建单元,用于根据所述第一子目标角点,构建由所述第一子目标角点之间的第一直达连线构成的第一子目标角点连线图,所述第一直达连线对应的两个第一子目标角点按照所述二维虚拟场景的网格分布得到的所有第一候选路径中不经过所述不可通行网格和其他第一子目标角点所在的网格,其中,所述第一候选路径为所述第一直达连线对应的两个第一子目标角点网格之间距离最短的路径;
路径单元,用于基于虚拟角色的起点网格、为所述虚拟角色设定的终点网格和所述第一子目标角点连线图,确定所述虚拟角色的移动路径。
14.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至12中任一所述的二维虚拟场景的路径确定方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至12中任一所述的二维虚拟场景的路径确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310942588.1A CN116899229A (zh) | 2023-07-28 | 2023-07-28 | 二维虚拟场景的路径确定方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310942588.1A CN116899229A (zh) | 2023-07-28 | 2023-07-28 | 二维虚拟场景的路径确定方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116899229A true CN116899229A (zh) | 2023-10-20 |
Family
ID=88352961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310942588.1A Pending CN116899229A (zh) | 2023-07-28 | 2023-07-28 | 二维虚拟场景的路径确定方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116899229A (zh) |
-
2023
- 2023-07-28 CN CN202310942588.1A patent/CN116899229A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109974725B (zh) | 一种路网拓扑构建方法、导航路径计算方法及装置 | |
CN107773164B (zh) | 用于清洁机器人的清洁方法、装置及机器人 | |
CN108775902A (zh) | 基于障碍物虚拟膨胀的伴随机器人路径规划方法及系统 | |
CN106582023A (zh) | 一种游戏寻路方法和装置 | |
CN111375205B (zh) | 游戏中寻路路径的处理方法、装置、电子设备及存储介质 | |
CN104548598B (zh) | 一种虚拟现实场景中寻路的方法 | |
CN109540136A (zh) | 一种多无人艇协同路径规划方法 | |
CN109059924A (zh) | 基于a*算法的伴随机器人增量路径规划方法及系统 | |
CN110755848B (zh) | 一种游戏中的寻路方法、终端及可读存储介质 | |
JP5381679B2 (ja) | 経路探索システム、方法、プログラム、並びに移動体 | |
WO2009092327A1 (zh) | 一种地图寻路方法及系统 | |
CN107744663B (zh) | 人工智能ai单位的寻路方法及装置 | |
CN111080786B (zh) | 基于bim的室内地图模型构建方法及装置 | |
CN104156459A (zh) | 一种基于相同开销网格的高效寻路的方法及系统 | |
CN102799781B (zh) | 虚拟场景中有宽度物体移动路径的优化方法 | |
CN113101663B (zh) | 游戏的寻路控制方法、装置、处理设备及存储介质 | |
CN110909961A (zh) | 基于bim的室内路径查询方法及装置 | |
CN108489501A (zh) | 一种基于智能绕过障碍的快速路径搜索算法 | |
CN112033426B (zh) | 行驶路径规划方法、装置及电子设备 | |
CN113009916A (zh) | 一种基于全局地图探索的路径规划方法、芯片及机器人 | |
CN107449426B (zh) | 导航逻辑方法及其室内ar导航系统 | |
CN116899229A (zh) | 二维虚拟场景的路径确定方法、装置、设备和存储介质 | |
US9645280B2 (en) | Global grid building in reverse faulted areas by an optimized unfaulting method | |
Cano et al. | A hybrid GRASP heuristic to construct effective drawings of proportional symbol maps | |
CN114674336B (zh) | 基于线段的路径规划方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |