CN110812844B - 一种游戏中的寻路方法、终端及可读存储介质 - Google Patents

一种游戏中的寻路方法、终端及可读存储介质 Download PDF

Info

Publication number
CN110812844B
CN110812844B CN201911077780.9A CN201911077780A CN110812844B CN 110812844 B CN110812844 B CN 110812844B CN 201911077780 A CN201911077780 A CN 201911077780A CN 110812844 B CN110812844 B CN 110812844B
Authority
CN
China
Prior art keywords
routing
grid
finding
area
way
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.)
Active
Application number
CN201911077780.9A
Other languages
English (en)
Other versions
CN110812844A (zh
Inventor
许云楠
余村
李强
虞海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201911077780.9A priority Critical patent/CN110812844B/zh
Publication of CN110812844A publication Critical patent/CN110812844A/zh
Application granted granted Critical
Publication of CN110812844B publication Critical patent/CN110812844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8076Shooting

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种游戏中的寻路方法、终端及可读存储介质,响应于寻路指令,获取游戏场景的寻路网格数据,以及虚拟角色在游戏场景中的当前位置;基于当前位置、虚拟角色的可寻路距离和内切区域,确定虚拟角色能够寻路到达的至少一个寻路区域;从寻路区域中确定出虚拟角色从当前位置去往目的地的下一个寻路路点;控制虚拟角色从当前位置移动到所述下一个寻路路点,直至控制虚拟角色寻路至目的地。因此,游戏中虚拟角色的寻路过程中在游戏运行时可以降低数据的处理量,简化计算的复杂度,节省寻路处理时间,提高寻路效率,能够提高游戏表现的多样性和真实性。

Description

一种游戏中的寻路方法、终端及可读存储介质
技术领域
本申请涉及游戏技术领域,具体而言,涉及一种游戏中的寻路方法和终端,以及存储有可供电子设备读取的计算机程序的可读存储介质。
背景技术
随着互联网技术的不断发展,游戏行业得到了不断发展,越来越智能化和拟人化的游戏AI在游戏中愈加重要,例如在第一人称射击类游戏(First-person shooting game,FPS),以及各种大型网络游戏中,可以通过游戏AI控制或者模拟,实现虚拟角色的活动规划等,以带给玩家更加真实的游戏体验。
在游戏中,无论是玩家控制的虚拟角色还是系统控制的虚拟角色,从一个地点寻路到另一个地点是一项常见的行为,尤其是在完成各种任务,以及在需要与其他角色进行互动,例如攻击、防守和寻找遮蔽的时候,经常需要进行寻路,以去往目的地。目前常见的寻路方式,大多是通过导航寻路工具集RecastNavigation描述一个3D场景,以及A*寻路算法使3D场景的可达性得到保证,以实现虚拟角色的寻路,然而该算法的性能与使用的场景大小有非常大的关系,场景非常大、寻路距离远或者寻路频繁的情况下性能会急剧下降,因此,如何实现表现多样化且真实、性能好、方便易用的寻路是亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种游戏中的寻路方法、终端以及可读存储介质,通过与预设的寻路网格数据中的到达区域进行匹配,借助虚拟角色能够到达的寻路区域中的寻路路点进行寻路,以空间换时间,在游戏运行时可以降低数据的处理量,简化计算的复杂度,节省寻路处理时间,提高寻路效率,能够提高游戏表现的多样性和真实性。
本申请实施例提供了一种游戏中的寻路方法,应用于显示有图形用户界面的终端,所述图形用户界面中至少显示有部分游戏场景以及虚拟角色,所述寻路方法包括:
响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;
基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域;
从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;
控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
进一步的,所述基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域,包括:
根据所述当前位置为所述虚拟角色的寻路中心和所述可寻路距离为所述虚拟角色的寻路半径,确定所述虚拟角色的单次寻路圆;
基于用于表示所述到达区域的每个寻路网格中内切圆的内切圆心和内切半径,确定与所述单次寻路圆相交的内切圆和所述单次寻路圆之间的至少一个相交区域;
将所述相交区域确定为所述虚拟角色能够寻路到达的寻路区域。
进一步的,通过以下步骤获取所述游戏场景的寻路网格数据,包括:
将所述游戏场景划分为多个寻路网格;
基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合;
确定所述可寻路多边形集合中每个寻路网格对应的多边形内部的最大内切圆作为到达区域,以及每个到达区域的内切圆心和内切半径;
将所述可寻路多边形集合中的多个寻路网格、每个寻路网格对应的到达区域,以及该到达区域的内切圆心和内切半径确定为所述游戏场景的寻路网格数据。
进一步的,所述基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合,包括;
基于各寻路网格之间的连通性,将连通的多个寻路网格划分至同一网格集中,以得到多个网格集合;
确定所述多个网格集合中寻路网格的数量最多的网格集合为所述虚拟角色能够进行寻路的可寻路多边形集合。
进一步的,所述控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地,包括:
检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中;
若所述当前位置与所述下一个寻路路点处于同一个网格区域中,并且所述当前位置与所述下一个寻路路点之间的间隔距离大于所述虚拟角色在分段寻路过程中的分段寻路距离的话,确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点;
按照每个中间分段点的距离次序,控制所述虚拟角色依次经过每个中间分段点,直至移动到所述下一个寻路路点,以及寻路至所述目的地。
进一步的,所述确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点,包括:
基于所述当前位置、所述下一个寻路路点以及所述当前位置与所述下一个寻路路点之间的间隔距离,通过线性差值算法确定所述当前位置与所述下一个寻路路点之间的第一中间分段点。
进一步的,在所述检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中之后,所述寻路方法包括:
若所述当前位置与所述下一个寻路路点未处于同一个网格区域中,检测与所述当前位置所处的当前网格区域连接的多个中间网格区域,以及每个中间网格区域与当前网格区域之间的连接点;
从多个连接点中确定出与所述当前位置之间的距离最短的连接点为所述下一个寻路路点,并控制所述虚拟角色从所述当前位置移动到作为所述下一个寻路路点的连接点。
进一步的,通过以下方式划分网格区域:
从所述可寻路多边形集合中确定出未被划分至任何网格区域中的初始寻路网格;
确定出与所述初始寻路网格相邻的多个寻路网格,以及每个相邻的寻路网格与所述初始寻路网格的相邻边的边长和每个相邻的寻路网格的周长;
从与所述初始寻路网格相邻的多个寻路网格中选择出相邻边的边长占周长比例最高的同区域寻路网格,并将该同区域寻路网格与所述初始寻路网格划分至同一网格区域中;
将该同一网格区域作为所述初始寻路网格,从所述同一网格区域外的寻路网格中查找与所述初始寻路网格相邻的同区域寻路网格,若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例值仍增加,将查找到的同区域寻路网格划分至所述同一网格区域中;
直至若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量大于预设的网格数量阈值,或者所述同一网格区域的面积与周长之间的比例值不再增加,所述同一网格区域划分完毕,重新选择初始寻路网格并划分下一个网格区域。
进一步的,所述寻路方法还包括:
响应于控制所述虚拟角色对位于目标位置的敌对角色进行攻击和/或躲避的指令,基于所述游戏场景中的场景信息,确定能够作为所述虚拟角色的掩体组件,以及所述掩体组件上凸包的凸包信息;
基于所述凸包信息,确定所述凸包的边缘点以及在所述凸包预设距离范围内的多个位置点作为候选寻路点;
基于在每个候选寻路点处,所述虚拟角色对于目标角色进行攻击的攻击得分和躲避得分,以及所述虚拟角色寻路到每个候选寻路点的寻路开销,从多个候选寻路点中确定出所述虚拟角色需要去往的目的地,并控制所述虚拟角色寻路到确定出的目的地。
本申请实施例还提供了一种终端,所述终端中显示有图形用户界面,所述图形用户界面中至少显示有部分游戏场景以及虚拟角色,所述终端包括:
数据获取模块,用于响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;
寻路区域确定模块,用于基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域;
寻路路点确定模块,用于从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;
寻路控制模块,用于控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
进一步的,所述寻路区域确定模块在用于基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域时,所述寻路区域确定模块还用于:
根据所述当前位置为所述虚拟角色的寻路中心和所述可寻路距离为所述虚拟角色的寻路半径,确定所述虚拟角色的单次寻路圆;
基于用于表示所述到达区域的每个寻路网格中内切圆的内切圆心和内切半径,确定与所述单次寻路圆相交的内切圆和所述单次寻路圆之间的至少一个相交区域;
将所述相交区域确定为所述虚拟角色能够寻路到达的寻路区域。
进一步的,所述数据获取模块在响应于寻路指令,获取所述游戏场景的寻路网格数据时,所述所述数据获取模块通过以下步骤获取所述游戏场景的寻路网格数据:
将所述游戏场景划分为多个寻路网格;
基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合;
确定所述可寻路多边形集合中每个寻路网格对应的多边形内部的最大内切圆作为到达区域,以及每个到达区域的内切圆心和内切半径;
将所述可寻路多边形集合中的多个寻路网格、每个寻路网格对应的到达区域,以及该到达区域的内切圆心和内切半径确定为所述游戏场景的寻路网格数据。
进一步的,所述数据获取模块在用于基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合时,所述数据获取模块还用于:
基于各寻路网格之间的连通性,将连通的多个寻路网格划分至同一网格集中,以得到多个网格集合;
确定所述多个网格集合中寻路网格的数量最多的网格集合为所述虚拟角色能够进行寻路的可寻路多边形集合。
进一步的,所述寻路控制模块在用于控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地时,所述寻路控制模块还用于:
检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中;
若所述当前位置与所述下一个寻路路点处于同一个网格区域中,并且所述当前位置与所述下一个寻路路点之间的间隔距离大于所述虚拟角色在分段寻路过程中的分段寻路距离的话,确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点;
按照每个中间分段点的距离次序,控制所述虚拟角色依次经过每个中间分段点,直至移动到所述下一个寻路路点,以及寻路至所述目的地。
进一步的,所述寻路控制模块在用于确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点时,所述寻路控制模块还用于:
基于所述当前位置、所述下一个寻路路点以及所述当前位置与所述下一个寻路路点之间的间隔距离,通过线性差值算法确定所述当前位置与所述下一个寻路路点之间的第一中间分段点。
进一步的,所述寻路控制模块在所述检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中之后,所述寻路控制模块还用于:
若所述当前位置与所述下一个寻路路点未处于同一个网格区域中,检测与所述当前位置所处的当前网格区域连接的多个中间网格区域,以及每个中间网格区域与当前网格区域之间的连接点;
从多个连接点中确定出与所述当前位置之间的距离最短的连接点为所述下一个寻路路点,并控制所述虚拟角色从所述当前位置移动到作为所述下一个寻路路点的连接点。
进一步的,所述终端还包括区域划分模块,所述区域划分模块通过以下方式划分网格区域:
从所述可寻路多边形集合中确定出未被划分至任何网格区域中的初始寻路网格;
确定出与所述初始寻路网格相邻的多个寻路网格,以及每个相邻的寻路网格与所述初始寻路网格的相邻边的边长和每个相邻的寻路网格的周长;
从与所述初始寻路网格相邻的多个寻路网格中选择出相邻边的边长占周长比例最高的同区域寻路网格,并将该同区域寻路网格与所述初始寻路网格划分至同一网格区域中;
将该同一网格区域作为所述初始寻路网格,从所述同一网格区域外的寻路网格中查找与所述初始寻路网格相邻的同区域寻路网格,若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例值仍增加,将查找到的同区域寻路网格划分至所述同一网格区域中;
直至若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量大于预设的网格数量阈值,或者所述同一网格区域的面积与周长之间的比例值不再增加,所述同一网格区域划分完毕,重新选择初始寻路网格并划分下一个网格区域。
进一步的,所述终端还包括攻防位置选择模块,所述攻防位置选择模块用于:
响应于控制所述虚拟角色对位于目标位置的敌对角色进行攻击和/或躲避的指令,基于所述游戏场景中的场景信息,确定能够作为所述虚拟角色的掩体组件,以及所述掩体组件上凸包的凸包信息;
基于所述凸包信息,确定所述凸包的边缘点以及在所述凸包预设距离范围内的多个位置点作为候选寻路点;
基于在每个候选寻路点处,所述虚拟角色对于目标角色进行攻击的攻击得分和躲避得分,以及所述虚拟角色寻路到每个候选寻路点的寻路开销,从多个候选寻路点中确定出所述虚拟角色需要去往的目的地,并控制所述虚拟角色寻路到确定出的目的地。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的游戏中的寻路方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的游戏中的寻路方法的步骤。
本申请实施例提供的游戏中的寻路方法、终端及可读存储介质,响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域;从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
在本申请中根据游戏中虚拟角色所处的位置,通过游戏场景中的寻路网格数据,确定出所述虚拟角色向目的地移动过程中能够经过的寻路区域,并根据寻路区域确定出该虚拟角色的向目的地移动的下一个寻路路点,因此,在本申请中通过与预设的寻路网格数据中的到达区域进行匹配,借助虚拟角色能够到达的寻路区域中的寻路路点进行寻路,以空间换时间,在游戏运行时可以降低数据的处理量,简化计算的复杂度,节省寻路处理时间,提高寻路效率,能够提高游戏表现的多样性和真实性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的一种游戏中的寻路方法的流程图;
图2为寻路网格的示意图;
图3为寻路区域的示意图;
图4为本申请实施例所提供的另一种游戏中的寻路方法的流程图;
图5为本申请实施例所提供的一种终端的结构示意图之一;
图6为本申请实施例所提供的一种终端的结构示意图之二;
图7为本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请能够适用的应用场景进行介绍。本申请能够应用于游戏技术领域,在游戏过程中,对于一个虚拟角色(该虚拟角色可以为用户进行控制的虚拟角色,也可以为由后台系统进行控制的虚拟角色),当该虚拟角色根据游戏的设定,需要进行寻路时(例如后台系统控制的虚拟角色进行巡逻时、模拟用户的操作进行寻路时,或者是当用户只给出了该虚拟角色一个指定目的地而未明确给出该虚拟角色前往指定目的地的游走路线时),通过预先存储在游戏场景中的寻路网格数据,确定出所述虚拟角色向目的地移动过程中能够经过的寻路区域,并控制所述虚拟角色向目的地移动。
其中,显示有图形用户界面的终端,可以是具有触控显示屏的手机、平板电脑(Tablet PersonalComputer)、膝上型电脑(Laptop Computer)、车载终端、个人数字助理(personal digitalassistant,简称PDA)或者可穿戴式设备(Wearable Device)等。
请参阅图1,图1为本申请实施例所提供的一种游戏中的寻路方法的流程图。本申请应用于显示有图形用户界面的终端,所述图形用户界面中至少显示有部分游戏场景以及虚拟角色。如图1中所示,本申请实施例提供的游戏中的寻路方法,所述寻路方法包括:
S101、响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据。
在本申请实施例中,响应于后台或者用户控制游戏中的虚拟角色去往目的地的寻路指令;首先,获取预先存储于后台之中或者是后台根据游戏的实时情况临时生成的所述游戏场景相应的寻路网格数据,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;同时确定有寻路需求的虚拟角色的当前位置,即所述虚拟角色进行寻路时在所述游戏场景中的所处位置。
其中,所述寻路指令是指用户根据游戏中的场景控制所述虚拟角色到达用户指定的目的地,但仅给出了虚拟角色的移动目的地而未给出虚拟角色的具体移动路线时,或者是后台系统控制所述虚拟角色进行巡逻时,或者是当后台控制的虚拟角色的附近出现其他虚拟角色时(其他虚拟角色可以为后台系统控制的其他虚拟角色,也可以为用户控制的虚拟角色),向其他虚拟角色的位置移动等,向虚拟角色发出的寻找路径的指令。
示例性的,所述寻路网格为根据所述游戏场景的区域设置,可以将所述游戏场景划分为不同的寻路网格,例如在游戏场景中有一个“医院”,“医院”的一层中包括多个房间,“每一个房间”可以为一个网格,通常情况下在医院的一层中每一个房间都是能够到达的,也就是说每一个房间之间具有连通性,因此位于医院一层的多个“房间”构成了在“医院一层”这个“第一寻路网格”,基于同样的道理,“医院二层”也可以为由多个网格(即多个房间)构成的第二寻路网格,由于“医院一层”与“医院二层”之间有“楼梯”连接,那么“医院一层”与“医院二层”之间同样具有连通性,因此“第一寻路网格”与“第二寻路网格”能够组成整个“医院”(假设“医院”仅有两层)这个寻路网格。
对应于上述实施例,例如,在“医院”的一层中包括6个“房间”,其中有一个房间由于上锁不能够进入,也就是说这个上锁的房间与其他房间之间不存在连通性,因此在“第一寻路网格”中的值包括5个“房间”
示例性的,如图2所示,图2为寻路网格的示意图,在游戏场景中,根据在游戏场景中的区域设置,将所述游戏场景划分为不同的寻路网格2a(图2仅示出部分寻路网格)。
S102、基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域。
在本申请实施例中,根据确定出所述虚拟角色所处的当前位置、以及在游戏中预先设置的所述虚拟角色能够进行寻路的可寻路距离,确定与所述到达区域之间是否具有相交的区域,从而确定出所述虚拟角色进行一次寻路能够到达的至少一个寻路区域。
进一步的,步骤S102包括:根据所述当前位置为所述虚拟角色的寻路中心和所述可寻路距离为所述虚拟角色的寻路半径,确定所述虚拟角色的单次寻路圆;基于用于表示所述到达区域的每个寻路网格中内切圆的内切圆心和内切半径,确定与所述单次寻路圆相交的内切圆和所述单次寻路圆之间的至少一个相交区域;将所述相交区域确定为所述虚拟角色能够寻路到达的寻路区域。
在本申请实施例中,以有寻路需求的虚拟角色的当前位置为寻路中心(即寻路圆心),以预先设置的所述虚拟角色的可寻路距离为该虚拟角色的寻路半径,确定该虚拟角色的单次寻路圆(也就是说所述单次寻路圆中的区域为所述虚拟角色进行一次寻路能够到达的范围)。根据单次寻路圆的寻路圆心和寻路半径以及用于表示所述到达区域的每个寻路网格中内切圆的内切圆心和内切半径,确定出与单次寻路圆相切的内切圆,同时确定出与所述单次寻路圆相交的至少一个内切圆,以及每个内切圆和所述单次寻路圆之间的相交区域,并将所述相交区域确定为所述虚拟角色能够寻路到达的寻路区域。
其中,所述单次寻路圆的边界为该虚拟角色根据预先设置的可寻路距离,即所述虚拟角色进行一次寻路能够到达的最远的距离。
示例性的,如图3中所示,图3为寻路区域的示意图,在游戏场景中,在虚拟角色所处的当前位置3a处进行寻路,以3a位置为圆心,以该虚拟角色的可寻路距离为半径,确定该虚拟角色进行一次寻路的单次寻路圆3b,通过单次寻路圆3b的寻路圆心和寻路半径,确定出与所述单次寻路圆相交的到达区域3c,并将所述单次寻路圆3b与所述到达区域3c之间的相交区域确定为寻路区域3d。
在本实施例中,寻找虚拟角色的寻路区域时,是通过内切圆的形式,确定寻路网格和到达区域的,在其他实施例中还可以为除内切圆外的其他方式,例如可以是正方形、矩形、菱形等。
S103、从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点。
在本申请实施例中,由于在所述游戏场景中所述虚拟角色在去往目的地的过程中能够经过的至少一个寻路区域,且所述虚拟角色在每个寻路区域中都存在至少一个寻路路点,也就是说所述虚拟角色每次移动的寻路路点可以有很多个,因此在确定出所述虚拟角色能够进行移动的至少一个寻路区域之后,还需要进一步的确定出该虚拟角色的下一个寻路路点。
其中,对于所述下一个寻路路点的选取可以是随机选取的,也可以根据所述虚拟角色所处的当前位置与多个寻路路点之间距离的远近,选择距离最近的一个寻路路点,具体的选取规则视具体情况可以进行适应性调整。
S104、控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
在本申请实施例中,根据选择出的下一个寻路路点,控制所述虚拟角色从当前位置移动到下一个寻路路点,并在所述下一个寻路路点上通过步骤S102以及步骤S103的方法再次确定出下一个寻路路点,以此类推,直至控制所述虚拟角色寻路至所述目的地为止。
这样,本申请通过上述步骤,基于“空间换时间”的概念,利用空间特点记录寻路区域的位置,减少了通过A*算法等寻路算法查询寻路区域的次数,加快了虚拟角色在寻路时的寻路效率。
本申请实施例提供的种游戏中的寻路方法,响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域;从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
这样,在本申请中根据游戏中虚拟角色所处的位置,通过游戏场景中的寻路网格数据,确定出所述虚拟角色向目的地移动过程中能够经过的至少一个寻路区域,并根据寻路区域确定出该虚拟角色的向目的地移动的下一个寻路路点,因此,在本申请中通过与预设的寻路网格数据中的到达区域进行匹配,借助虚拟角色能够到达的寻路区域中的寻路路点进行寻路,以空间换时间,在游戏运行时可以降低数据的处理量,简化计算的复杂度,节省寻路处理时间,提高寻路效率,能够提高游戏表现的多样性和真实性。
请参阅图4,图4为本申请实施例提供的另一种游戏中的寻路方法的流程图。本申请可以应用于显示有图形用户界面的终端,所述图形用户界面中至少显示有部分游戏场景以及虚拟角色。如图4中所示,本申请实施例提供的游戏中的寻路方法,所述寻路方法包括:
S401、将所述游戏场景划分为多个寻路网格。
在本发明实施例中,当游戏中的虚拟角色需要进行寻路时,后台会通过网格导航工具根据游戏场景中的区域设置,首先将游戏场景划分为不同的多个寻路网格。
其中,所述网格导航工具可以为RecastNavigation工具,是一个常用的3D游戏中自动化的“寻路网格”生成工具,它通过体素化的方法,将场景中的模型数据转化为一个图状的“寻路网格”数据,“寻路网格”的图结构中,节点称之为poly,poly和poly之间有相邻的边,对应着“寻路网格”图结构的边。为了管理空间数据结构,RecastNavigation使用划分网格的方法管理poly,这种网格称之为tile,从而得到的寻路网格。
S402、基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合。
在本申请实施例中,在一个游戏场景中多个寻路网格之间往往存在连通性,也就是说虚拟角色能够在具有连通性的寻路网格中进行移动,因此可以将存在连通性的寻路网格划分为同一类,确定出在整个游戏场景中所述虚拟角色能够进行寻路的可寻路多边形集合,也就是说,所述多边形几何中包括多个寻路网格,这些寻路网格之间具有连通性。
S403、确定所述可寻路多边形集合中每个寻路网格对应的多边形内部的最大内切圆作为到达区域,以及每个到达区域的内切圆心和内切半径。
在本申请实施例中,通过确定出的寻路网格,利用寻路网格之间在空间上的特点,减少所述虚拟角色在寻路时浪费在大量计算上的时间,同时为了进一步的减少计算量,将寻路网格更简洁的用于后续的路径寻找之中,确定所述可寻路多边形集合中的,每一个寻路网格的多边形区域内最大的内切圆,并记录该内切圆的内切圆心以及内切半径。
S404、将所述可寻路多边形集合中的多个寻路网格、每个寻路网格对应的到达区域,以及该到达区域的内切圆心和内切半径确定为所述游戏场景的寻路网格数据。
在本申请实施例中,将可寻路多边形集合中的多个寻路网格,每个寻路网格所对应的最大的内切圆,以及最大内切圆的内切圆心和内切半径确定为所述游戏场景的寻路网格数据。
S405、响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据。
S406、基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域。
S407、从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点。
S408、控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
其中,S405至S408的描述可以参照S101至S104的描述,并且能达到相同的技术效果,对此不做赘述。
进一步的,步骤402包括:基于各寻路网格之间的连通性,将连通的多个寻路网格划分至同一网格集中,以得到多个网格集合;确定所述多个网格集合中寻路网格的数量最多的网格集合为所述虚拟角色能够进行寻路的可寻路多边形集合。
在本申请实施例中,根据对游戏场景的设置,在该游戏场景中寻路网格之间是存在连通性的,也就是说有寻路需求的虚拟角色能够在多个寻路网格中进行移动,因此,将存在连通性的寻路网格划分至同一网格集合中,这样在一个游戏场景中可以得到多个网格集合;并将多个网格集合中包括寻路网格的数量最多的网格集合确定为所述虚拟角色能够进行寻路的可寻路多边形集合。
举例来说,在一个游戏场景中包括地面、房屋、屋顶,地面和屋顶之间是不存在连接性的,当虚拟角色位于地面时,其是无法直接移动到屋顶的;因此,此时地面所处的寻路网格就不能够和屋顶所处的寻路网格划分至同一个网格集合中。若在一个游戏场景中包括地面、屋顶以及梯子,那么地面和梯子之间是存在连通性的,而梯子和屋顶之间也是存在连通性的,此时就可以将地面所处的寻路网格、屋顶所处的寻路网格以及梯子所处的寻路网格可以划分至同一个网格集合。
从实际出发,在一个游戏场景中虚拟角色能够到达的地方,应该在整个游戏场景中占据绝大的部分,因此包括寻路网格的数量最多的网格集合中所对应的游戏中的地方,便是虚拟角色能够到达的所有的位置,也就是说可寻路多边形集合中包括在游戏场景中虚拟角色能够进行寻路的所有位置。
进一步的,步骤408包括:检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中;若所述当前位置与所述下一个寻路路点处于同一个网格区域中,并且所述当前位置与所述下一个寻路路点之间的间隔距离大于所述虚拟角色在分段寻路过程中的分段寻路距离的话,确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点;按照每个中间分段点的距离次序,控制所述虚拟角色依次经过每个中间分段点,直至移动到所述下一个寻路路点,以及寻路至所述目的地。
在本申请实施例中,根据所述游戏场景中的设置,事先将该游戏场景不同的区域划分为不同的网格区域,例如,一个停车场可以划分为一个网格区域、一所学校也可以划分为一个网格区域;检测确定出的所述虚拟角色所处的当前位置与所述下一个寻路路点是否处于同一个网格区域之中,若所述当前位置与所述下一个寻路路点处于同一个网格区域中,判断所述当前位置与所述下一个寻路路点之间的间隔距离是否大于预设的所述虚拟角色在分段寻路过程中的分段寻路距离,若所述当前位置与所述下一个寻路路点处于同一个网格区域中,并且所述当前位置与所述下一个寻路路点之间的间隔距离大于所述虚拟角色在分段寻路过程中的分段寻路距离的话,从所述当前位置与所述下一个寻路路点之间的间隔距离中确定出至少一个中间分段点,使得每一段寻路的距离不大于所述分段寻路距离;最后,将所述当前位置作为起点,将所述下一个寻路路点作为终点,按照确定出的至少一个中间分段点中的每一个中间分段点的距离次序,控制所述虚拟角色依次经过每一个中间分段点,直至所述虚拟角色移动到所述下一个寻路路点,当虚拟角色移动到所述下一个寻路路点之后,按照之前的方式将该下一个寻路路点作为该虚拟角色当前位置,再次寻找下一个寻路路点,直至该虚拟角色寻路至所述目的地。
举例来说,虚拟角色处于的当前位置为s,确定出的下一个寻路路点为n,目的地为e,s与n处于同一个预先划分好的网格区域中,且s与n之间的间隔距离D大于预设的虚拟角色在分段寻路过程中的分段寻路距离d,则需要在s与n之间确定出至少一个中间分段点f1-f3,按照f1-f3的距离次序,即距离s最近点为f1、其次为f2、最后为f3,控制所述虚拟角色依次经过每个中间分段点,直至移动到所述下一个寻路路点n,即控制所述虚拟角色从s点出发,首先到达f1点,紧接着从f1点向f2点移动,再从f2点向f3点移动,最后从f3点移动至所述下一个寻路路点n,重复执行上述过程直至所述虚拟角色移动至目的地e为止。
进一步的,所述确定所述当前位置移与所述下一个寻路路点之间的至少一个中间分段点,包括:基于所述当前位置、所述下一个寻路路点以及所述当前位置与所述下一个寻路路点之间的间隔距离,通过线性差值算法确定所述当前位置与所述下一个寻路路点之间的第一中间分段点。
在本申请实施例中,通过线性差值算法确定所述当前位置与所述下一个寻路路点之间的第一中间分段点,具体的,通过以下公式计算所述当前位置移与所述下一个寻路路点之间的第一中间分段点:
f1=s*(d/D)+n*(1-d/D);
其中,f1为第一中间分段点,s为所述当前位置,d为所述分段寻路距离,D为s与n之间的间隔距离,n为所述下一个寻路路点。
若所述当前位置以及所述下一个寻路路点与所述第一中间分段点之间的距离仍然大于分段寻路距离的话,通过上述公式继续确定出当前位置与第一中间分段点之间的第二中间分段点,以及所述下一个寻路路点与所述第一中间分段点之间的第三中间分段点,以此类推直至所述当前位置(以及所述下一个寻路路点)与某一个中间分段点之间的间隔不大于分段寻路距离为止。
进一步的,所述检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中之后,所述寻路方法包括:
若所述当前位置与所述下一个寻路路点未处于同一个网格区域中,检测与所述当前位置所处的当前网格区域连接的多个中间网格区域,以及每个中间网格区域与当前网格区域之间的连接点;
从多个连接点中确定出与所述当前位置之间的距离最短的连接点为所述下一个寻路路点,并控制所述虚拟角色从所述当前位置移动到作为所述下一个寻路路点的连接点。
在本申请实施例中,检测确定出的所述虚拟角色所处的当前位置与所述下一个寻路路点是否处于同一个网格区域之中,若所述当前位置与所述下一个寻路路点未处于同一个网格区域中,检测在所述游戏场景中与所述当前位置所处的当前网格区域中存在连接关系的多个中间网格区域,并确定每个中间网格区域与所述当前网格区域之间的连接点,即所述当前网格区域的边界与中间网格区域边界共同拥有的边界点。
由于在一个游戏场景中与所述当前网格区域存在连接性的中间网格区域会有很多个,每个中间网格区域与所述当前区域之间存在至少一个连接点,因此还需要从多个连接点中确定出一个与所述当前位置之间距离最短的连接点作为下一个寻路路点,并控制所述虚拟角色从当前位置移动到作为下一个寻路路点的连接点。
进一步的,通过以下方式划分网格区域:从所述可寻路多边形集合中确定出未被划分至任何网格区域中的初始寻路网格;确定出与所述初始寻路网格相邻的多个寻路网格,以及每个相邻的寻路网格与所述初始寻路网格的相邻边的边长和每个相邻的寻路网格的周长;从与所述初始寻路网格相邻的多个寻路网格中选择出相邻边的边长占周长比例最高的同区域寻路网格,并将该同区域寻路网格与所述初始寻路网格划分至同一网格区域中;将该同一网格区域作为所述初始寻路网格,从所述同一网格区域外的寻路网格中查找与所述初始寻路网格相邻的同区域寻路网格,若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例值仍增加,将查找到的同区域寻路网格划分至所述同一网格区域中;直至若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量大于预设的网格数量阈值,或者所述同一网格区域的面积与周长之间的比例值不再增加,所述同一网格区域划分完毕,重新选择初始寻路网格并划分下一个网格区域。
在本申请实施例中,从确定出的包括多个寻路网格的可寻路多边形集合中确定出一个未被划分至任何网格区域中的初始寻路网格,并确定出与该初始寻路网格相邻的多个寻路网格,记录每个相邻的寻路网格与所述初始寻路网格相邻边的边长以及每个相邻寻路网格的周长,将与所述初始寻路网格相邻的多个寻路网格中相邻边的边长之和占周长比例最高的相邻的寻路网格确定为同区域寻路网格,并将该同区域寻路网格与所述初始寻路网格划分至同一网格区域中;
而后将该同一网格区域作为初始寻路网格,从所述同一网格区域之外的区域中的多个寻路网格中查找与所述初始寻路网格相邻的同区域寻路网格,若查找到的同区域寻路网格能够与所述初始寻路网格划分为同一网格区域,假设将该查找到的同区域寻路网格划分至所述同一网格区域之后,判断所述同一网格区域中此时寻路网格的数量是否小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例是否仍在增加,若所述同一网格区域中此时寻路网格的数量小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例仍在增加,则将查找到的同区域寻路网格划分至所述同一网格区域中;
重复执行上述寻找同区域寻路网格的步骤,直至若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中的寻路网格的数量大于预设的网格数量阈值,或者说所述同一网格区域的面积与周长之间的比例值不再增加,则该同一网络区域划分完毕,重新从所述可寻路多边形集合中选择一个未被划分至任何网格区域中的初始寻路网格,并划分下一个网格区域。
进一步的,所述寻路方法还包括:响应于控制所述虚拟角色对位于目标位置的敌对角色进行攻击和/或躲避的指令,基于所述游戏场景中的场景信息,确定能够作为所述虚拟角色的掩体组件,以及所述掩体组件上凸包的凸包信息;基于所述凸包信息,确定所述凸包的边缘点以及在所述凸包预设距离范围内的多个位置点作为候选寻路点;基于在每个候选寻路点处,所述虚拟角色对于目标角色进行攻击的攻击得分和躲避得分,以及所述虚拟角色寻路到每个候选寻路点的寻路开销,从多个候选寻路点中确定出所述虚拟角色需要去往的目的地,并控制所述虚拟角色寻路到确定出的目的地。
在本申请实施例中,响应于所述虚拟角色对于目标位置出的敌对角色进行攻击和/或躲避的指令,基于游戏场景中的场景信息,确定出能够供所述虚拟角色用于躲避掩护的掩体组件,例如,在游戏场景中存在一块能够将所述虚拟角色遮挡住的石头或者是房屋等,同时确定该掩体组件上的土包的凸包信息;根据确定出的凸包信息,确定该凸包的边缘点以及距离所述凸包预设距离范围内的多个位置点作为候选寻路点;计算在每个候选寻路点处,所述虚拟角色对目标角色进行攻击时的攻击得分,或所述虚拟角色进行躲避时的躲避得分,并计算所述虚拟角色从当前位置寻路到每个候选寻路点的寻路开销,根据所述攻击得分、躲避得分以及寻路开销,确定出所述虚拟角色需要去往的目的地,并控制所述虚拟角色寻路到确定出的目的地。
其中,可以根据不同的游戏策略从多个候选寻路点中选择相应的寻路点,举例来说,在一个游戏中按照当前的游戏情况,一个虚拟角色此时应该选择一个最适合攻击的位置点,因此在从候选寻路点中选择寻路点时,优先考虑攻击得分高的候选寻路点。
通过以下公式计算所述虚拟角色A从p0点寻路到p1点的攻击得分:
Figure BDA0002263018450000211
其中,AttackValue(A,E,p0,p1,p2,[E1,E2,,,En])为一个位于p0位置处的虚拟角色A,寻路到p1位置处,p1位置处附近有敌对角色[E1,E2,,,En],对位于p2位置处的敌对角色进行攻击时的攻击得分,C为位于p1位置处的虚拟角色A,对位于p2位置处的敌对角色的攻击便利度,Ei.position为敌对角色Ei的位置信息,args1、args2、args3为虚拟角色A的武器参数属性。
其中,所述攻击便利度C通过以下公式计算得到:
C(A,p1,p2)=dist(p1,p2)*A.args1+A.args2
通过以下公式计算所述虚拟角色A从p0点寻路到p1点的躲避得分:
Figure BDA0002263018450000221
其中,DefenceValue为位于位置p0的虚拟角色A,在附近有敌对角色[E1,E2,,,En]的情况下,寻路到p1点的躲避得分,En为在虚拟角色A附近的敌对角色,n为所述敌对角色的个数,N为一个位于p0点的虚拟角色A,在附近有敌对角色[E1,E2,,,En]的情况下,寻路到p1点的寻路开销。
通过以下公式计算所述虚拟角色A从p0点寻路到p1点的寻路开销:
Figure BDA0002263018450000222
其中,N为一个位于p0点的虚拟角色A,在附近有敌对角色[E1,E2,,,En]的情况下,寻路到p1点的寻路开销,En为在虚拟角色A附近的敌对角色,n为所述敌对角色的个数,Qj为第j个中间寻路点,k为中间寻路点的个数。
本申请实施例提供的一种游戏中的寻路方法,将所述游戏场景划分为多个寻路网格;基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合;确定所述可寻路多边形集合中每个寻路网格对应的多边形内部的最大内切圆作为内切区域,以及每个内切区域的内切圆心和内切半径;将所述可寻路多边形集合中的多个寻路网格、每个寻路网格对应的内切区域,以及该内切区域的内切圆心和内切半径确定为所述游戏场景的寻路网格数据;响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;基于所述当前位置、所述虚拟角色的可寻路距离和所述内切区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域;从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
这样,在本申请中根据游戏中虚拟角色所处的位置,通过网格导航工具在游戏场景中划分的多个寻路网格,确定虚拟角色能够进行寻路的可寻路多边形集合,将可寻路多边形集合中的寻路网格以及该寻路网格的对应的内切圆以及内切圆心和内切半径存储为寻路网格数据,通过预先存储在游戏场景中的寻路网格数据,确定出所述虚拟角色能够向目的地移动过程中能够经过的寻路区域,并根据寻路区域确定出该虚拟角色的向目的地移动的下一个寻路路点,因此,在本申请中通过与预设的寻路网格数据中的到达区域进行匹配,借助虚拟角色能够到达的寻路区域中的寻路路点进行寻路,以空间换时间,在游戏运行时可以降低数据的处理量,简化计算的复杂度,节省寻路处理时间,提高寻路效率,能够提高游戏表现的多样性和真实性。
请参阅图5、图6,图5为本申请实施例所提供的一种游戏的终端的结构示意图之一,图6为本申请另一实施例所提供的一种终端的结构示意图之二。本申请可以应用于显示有图形用户界面的终端,所述图形用户界面中至少显示有部分游戏场景以及虚拟角色。如图5中所示,所述终端500包括:
数据获取模块501,用于响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;
寻路区域确定模块502,用于基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域;
寻路路点确定模块503,用于从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;
寻路控制模块504,用于控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
进一步的,如图6中所示,所述数据获取模块501在响应于寻路指令,获取所述游戏场景的寻路网格数据时,所述数据获取模块501通过以下步骤获取所述游戏场景的寻路网格数据:
将所述游戏场景划分为多个寻路网格;
基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合;
确定所述可寻路多边形集合中每个寻路网格对应的多边形内部的最大内切圆作为到达区域,以及每个到达区域的内切圆心和内切半径;
将所述可寻路多边形集合中的多个寻路网格、每个寻路网格对应的到达区域,以及该到达区域的内切圆心和内切半径确定为所述游戏场景的寻路网格数据。
进一步的,如图6中所示,所述终端500还包括区域划分模块505,所述区域划分模块505通过以下方式划分网格区域:
从所述可寻路多边形集合中确定出未被划分至任何网格区域中的初始寻路网格;
确定出与所述初始寻路网格相邻的多个寻路网格,以及每个相邻的寻路网格与所述初始寻路网格的相邻边的边长和每个相邻的寻路网格的周长;
从与所述初始寻路网格相邻的多个寻路网格中选择出相邻边的边长占周长比例最高的同区域寻路网格,并将该同区域寻路网格与所述初始寻路网格划分至同一网格区域中;
将该同一网格区域作为所述初始寻路网格,从所述同一网格区域外的寻路网格中查找与所述初始寻路网格相邻的同区域寻路网格,若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例值仍增加,将查找到的同区域寻路网格划分至所述同一网格区域中;
直至若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量大于预设的网格数量阈值,或者所述同一网格区域的面积与周长之间的比例值不再增加,所述同一网格区域划分完毕,重新选择初始寻路网格并划分下一个网格区域。
进一步的,如图6所示,所述终端500还包括攻防位置选择模块506,所述攻防位置选择模块506用于:
响应于控制所述虚拟角色对位于目标位置的敌对角色进行攻击和/或躲避的指令,基于所述游戏场景中的场景信息,确定能够作为所述虚拟角色的掩体组件,以及所述掩体组件上凸包的凸包信息;
基于所述凸包信息,确定所述凸包的边缘点以及在所述凸包预设距离范围内的多个位置点作为候选寻路点;
基于在每个候选寻路点处,所述虚拟角色对于目标角色进行攻击的攻击得分和躲避得分,以及所述虚拟角色寻路到每个候选寻路点的寻路开销,从多个候选寻路点中确定出所述虚拟角色需要去往的目的地,并控制所述虚拟角色寻路到确定出的目的地。
进一步的,所述寻路区域确定模块502在用于基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域时,所述寻路区域确定模块502还用于:
根据所述当前位置为所述虚拟角色的寻路中心和所述可寻路距离为所述虚拟角色的寻路半径,确定所述虚拟角色的单次寻路圆;
基于用于表示所述到达区域的每个寻路网格中内切圆的内切圆心和内切半径,确定与所述单次寻路圆相交的内切圆和所述单次寻路圆之间的至少一个相交区域;
将所述相交区域确定为所述虚拟角色能够寻路到达的寻路区域。
进一步的,所述数据获取模块501在用于基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合时,所述数据获取模块501还用于:
基于各寻路网格之间的连通性,将连通的多个寻路网格划分至同一网格集中,以得到多个网格集合;
确定所述多个网格集合中寻路网格的数量最多的网格集合为所述虚拟角色能够进行寻路的可寻路多边形集合。
进一步的,所述寻路控制模块504在用于控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地时,所述寻路控制模块504还用于:
检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中;
若所述当前位置与所述下一个寻路路点处于同一个网格区域中,并且所述当前位置与所述下一个寻路路点之间的间隔距离大于所述虚拟角色在分段寻路过程中的分段寻路距离的话,确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点;
按照每个中间分段点的距离次序,控制所述虚拟角色依次经过每个中间分段点,直至移动到所述下一个寻路路点,以及寻路至所述目的地。
进一步的,所述寻路控制模块504在所述确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点时,所述寻路控制模块504还用于:
基于所述当前位置、所述下一个寻路路点以及所述当前位置与所述下一个寻路路点之间的间隔距离,通过线性差值算法确定所述当前位置与所述下一个寻路路点之间的第一中间分段点。
进一步的,所述寻路控制模块504在所述检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中之后,所述寻路控制模块504还用于:
若所述当前位置与所述下一个寻路路点未处于同一个网格区域中,检测与所述当前位置所处的当前网格区域连接的多个中间网格区域,以及每个中间网格区域与当前网格区域之间的连接点;
从多个连接点中确定出与所述当前位置之间的距离最短的连接点为所述下一个寻路路点,并控制所述虚拟角色从所述当前位置移动到作为所述下一个寻路路点的连接点。
本申请实施例提供的一种游戏中的终端,响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域;从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
这样,在本申请中根据游戏中虚拟角色所处的位置,通过游戏场景中的寻路网格数据,确定出所述虚拟角色向目的地移动过程中能够经过的寻路区域,并根据寻路区域确定出该虚拟角色的向目的地移动的下一个寻路路点,因此,在本申请中通过与预设的寻路网格数据中的到达区域进行匹配,借助虚拟角色能够到达的寻路区域中的寻路路点进行寻路,以空间换时间,在游戏运行时可以降低数据的处理量,简化计算的复杂度,节省寻路处理时间,提高寻路效率,能够提高游戏表现的多样性和真实性。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
请参阅图7,图7为本申请实施例所提供的一种电子设备的结构示意图。如图7中所示,所述电子设备700包括处理器710、存储器720和总线730。
所述存储器720存储有所述处理器710可执行的机器可读指令,当电子设备700运行时,所述处理器710与所述存储器720之间通过总线730通信,所述机器可读指令被所述处理器710执行时,可以执行如上述图1以及图4所示方法实施例中的游戏中的寻路方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图4所示方法实施例中的游戏中的寻路方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (20)

1.一种游戏中的寻路方法,其特征在于,应用于显示有图形用户界面的终端,所述图形用户界面中至少显示有部分游戏场景以及虚拟角色,所述寻路方法包括:
响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;
基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色进行一次寻路能够到达的范围与所述到达区域之间是否具有相交的区域,从而确定出所述虚拟角色进行一次寻路能够到达的至少一个寻路区域;
从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;
控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
2.如权利要求1所述的寻路方法,其特征在于,所述基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域,包括:
根据所述当前位置为所述虚拟角色的寻路中心和所述可寻路距离为所述虚拟角色的寻路半径,确定所述虚拟角色的单次寻路圆;
基于用于表示所述到达区域的每个寻路网格中内切圆的内切圆心和内切半径,确定与所述单次寻路圆相交的内切圆和所述单次寻路圆之间的至少一个相交区域;
将所述相交区域确定为所述虚拟角色能够寻路到达的寻路区域。
3.如权利要求1所述的寻路方法,其特征在于,通过以下步骤获取所述游戏场景的寻路网格数据,包括:
将所述游戏场景划分为多个寻路网格;
基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合;
确定所述可寻路多边形集合中每个寻路网格对应的多边形内部的最大内切圆作为到达区域,以及每个到达区域的内切圆心和内切半径;
将所述可寻路多边形集合中的多个寻路网格、每个寻路网格对应的到达区域,以及该到达区域的内切圆心和内切半径确定为所述游戏场景的寻路网格数据。
4.如权利要求3所述的寻路方法,其特征在于,所述基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合,包括;
基于各寻路网格之间的连通性,将连通的多个寻路网格划分至同一网格集中,以得到多个网格集合;
确定所述多个网格集合中寻路网格的数量最多的网格集合为所述虚拟角色能够进行寻路的可寻路多边形集合。
5.如权利要求3所述的寻路方法,其特征在于,所述控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地,包括:
检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中;
若所述当前位置与所述下一个寻路路点处于同一个网格区域中,并且所述当前位置与所述下一个寻路路点之间的间隔距离大于所述虚拟角色在分段寻路过程中的分段寻路距离的话,确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点;
按照每个中间分段点的距离次序,控制所述虚拟角色依次经过每个中间分段点,直至移动到所述下一个寻路路点,以及寻路至所述目的地。
6.如权利要求5所述的寻路方法,其特征在于,所述确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点,包括:
基于所述当前位置、所述下一个寻路路点以及所述当前位置与所述下一个寻路路点之间的间隔距离,通过线性差值算法确定所述当前位置与所述下一个寻路路点之间的第一中间分段点。
7.如权利要求5所述的寻路方法,其特征在于,在所述检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中之后,所述寻路方法包括:
若所述当前位置与所述下一个寻路路点未处于同一个网格区域中,检测与所述当前位置所处的当前网格区域连接的多个中间网格区域,以及每个中间网格区域与当前网格区域之间的连接点;
从多个连接点中确定出与所述当前位置之间的距离最短的连接点为所述下一个寻路路点,并控制所述虚拟角色从所述当前位置移动到作为所述下一个寻路路点的连接点。
8.如权利要求5所述的寻路方法,其特征在于,通过以下方式划分网格区域:
从所述可寻路多边形集合中确定出未被划分至任何网格区域中的初始寻路网格;
确定出与所述初始寻路网格相邻的多个寻路网格,以及每个相邻的寻路网格与所述初始寻路网格的相邻边的边长和每个相邻的寻路网格的周长;
从与所述初始寻路网格相邻的多个寻路网格中选择出相邻边的边长占周长比例最高的同区域寻路网格,并将该同区域寻路网格与所述初始寻路网格划分至同一网格区域中;
将该同一网格区域作为所述初始寻路网格,从所述同一网格区域外的寻路网格中查找与所述初始寻路网格相邻的同区域寻路网格,若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例值仍增加,将查找到的同区域寻路网格划分至所述同一网格区域中;
直至若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量大于预设的网格数量阈值,或者所述同一网格区域的面积与周长之间的比例值不再增加,所述同一网格区域划分完毕,重新选择初始寻路网格并划分下一个网格区域。
9.如权利要求1所述的寻路方法,其特征在于,所述寻路方法还包括:
响应于控制所述虚拟角色对位于目标位置的敌对角色进行攻击和/或躲避的指令,基于所述游戏场景中的场景信息,确定能够作为所述虚拟角色的掩体组件,以及所述掩体组件上凸包的凸包信息;
基于所述凸包信息,确定所述凸包的边缘点以及在所述凸包预设距离范围内的多个位置点作为候选寻路点;
基于在每个候选寻路点处,所述虚拟角色对于目标角色进行攻击的攻击得分和躲避得分,以及所述虚拟角色寻路到每个候选寻路点的寻路开销,从多个候选寻路点中确定出所述虚拟角色需要去往的目的地,并控制所述虚拟角色寻路到确定出的目的地。
10.一种终端,其特征在于,所述终端中显示有图形用户界面,所述图形用户界面中至少显示有部分游戏场景以及虚拟角色,所述终端包括:
数据获取模块,用于响应于寻路指令,获取所述游戏场景的寻路网格数据,以及所述虚拟角色在所述游戏场景中的当前位置,其中,所述寻路网格数据包括所述游戏场景中的多个寻路网格以及每个寻路网格中能够供所述虚拟角色寻路的到达区域相应的数据;
寻路区域确定模块,用于基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色进行一次寻路能够到达的范围与所述到达区域之间是否具有相交的区域,从而确定出所述虚拟角色进行一次寻路能够到达的至少一个寻路区域;
寻路路点确定模块,用于从所述至少一个寻路区域中确定所述虚拟角色从所述当前位置去往目的地的下一个寻路路点;
寻路控制模块,用于控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地。
11.如权利要求10所述的终端,其特征在于,所述寻路区域确定模块在用于基于所述当前位置、所述虚拟角色的可寻路距离和所述到达区域,确定所述虚拟角色能够寻路到达的至少一个寻路区域时,所述寻路区域确定模块还用于:
根据所述当前位置为所述虚拟角色的寻路中心和所述可寻路距离为所述虚拟角色的寻路半径,确定所述虚拟角色的单次寻路圆;
基于用于表示所述到达区域的每个寻路网格中内切圆的内切圆心和内切半径,确定与所述单次寻路圆相交的内切圆和所述单次寻路圆之间的至少一个相交区域;
将所述相交区域确定为所述虚拟角色能够寻路到达的寻路区域。
12.如权利要求10所述的终端,其特征在于,所述数据获取模块在响应于寻路指令,获取所述游戏场景的寻路网格数据时,所述数据获取模块通过以下步骤获取所述游戏场景的寻路网格数据:
将所述游戏场景划分为多个寻路网格;
基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合;
确定所述可寻路多边形集合中每个寻路网格对应的多边形内部的最大内切圆作为到达区域,以及每个到达区域的内切圆心和内切半径;
将所述可寻路多边形集合中的多个寻路网格、每个寻路网格对应的到达区域,以及该到达区域的内切圆心和内切半径确定为所述游戏场景的寻路网格数据。
13.如权利要求12所述的终端,其特征在于,所述数据获取模块在用于基于各寻路网格之间的连通性,确定出所述虚拟角色能够进行寻路的包括多个连通的寻路网格的可寻路多边形集合时,所述数据获取模块还用于:
基于各寻路网格之间的连通性,将连通的多个寻路网格划分至同一网格集中,以得到多个网格集合;
确定所述多个网格集合中寻路网格的数量最多的网格集合为所述虚拟角色能够进行寻路的可寻路多边形集合。
14.如权利要求12所述的终端,其特征在于,所述寻路控制模块在用于控制所述虚拟角色从所述当前位置移动到所述下一个寻路路点,直至控制所述虚拟角色寻路至所述目的地时,所述寻路控制模块还用于:
检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中;
若所述当前位置与所述下一个寻路路点处于同一个网格区域中,并且所述当前位置与所述下一个寻路路点之间的间隔距离大于所述虚拟角色在分段寻路过程中的分段寻路距离的话,确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点;
按照每个中间分段点的距离次序,控制所述虚拟角色依次经过每个中间分段点,直至移动到所述下一个寻路路点,以及寻路至所述目的地。
15.如权利要求14所述的终端,其特征在于,所述寻路控制模块在用于确定所述当前位置与所述下一个寻路路点之间的至少一个中间分段点时,所述寻路控制模块还用于:
基于所述当前位置、所述下一个寻路路点以及所述当前位置与所述下一个寻路路点之间的间隔距离,通过线性差值算法确定所述当前位置与所述下一个寻路路点之间的第一中间分段点。
16.如权利要求14所述的终端,其特征在于,所述寻路控制模块在所述检测所述当前位置与所述下一个寻路路点是否处于同一个预先划分好的网格区域中之后,所述寻路控制模块还用于:
若所述当前位置与所述下一个寻路路点未处于同一个网格区域中,检测与所述当前位置所处的当前网格区域连接的多个中间网格区域,以及每个中间网格区域与当前网格区域之间的连接点;
从多个连接点中确定出与所述当前位置之间的距离最短的连接点为所述下一个寻路路点,并控制所述虚拟角色从所述当前位置移动到作为所述下一个寻路路点的连接点。
17.如权利要求14所述的终端,其特征在于,所述终端还包括区域划分模块,所述区域划分模块通过以下方式划分网格区域:
从所述可寻路多边形集合中确定出未被划分至任何网格区域中的初始寻路网格;
确定出与所述初始寻路网格相邻的多个寻路网格,以及每个相邻的寻路网格与所述初始寻路网格的相邻边的边长和每个相邻的寻路网格的周长;
从与所述初始寻路网格相邻的多个寻路网格中选择出相邻边的边长占周长比例最高的同区域寻路网格,并将该同区域寻路网格与所述初始寻路网格划分至同一网格区域中;
将该同一网格区域作为所述初始寻路网格,从所述同一网格区域外的寻路网格中查找与所述初始寻路网格相邻的同区域寻路网格,若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量小于预设的网格数量阈值或者所述同一网格区域的面积与周长之间的比例值仍增加,将查找到的同区域寻路网格划分至所述同一网格区域中;
直至若将查找到的同区域寻路网格划分至所述同一网格区域后,所述同一网格区域中寻路网格的数量大于预设的网格数量阈值,或者所述同一网格区域的面积与周长之间的比例值不再增加,所述同一网格区域划分完毕,重新选择初始寻路网格并划分下一个网格区域。
18.如权利要求10所述的终端,其特征在于,所述终端还包括攻防位置选择模块,所述攻防位置选择模块用于:
响应于控制所述虚拟角色对位于目标位置的敌对角色进行攻击和/或躲避的指令,基于所述游戏场景中的场景信息,确定能够作为所述虚拟角色的掩体组件,以及所述掩体组件上凸包的凸包信息;
基于所述凸包信息,确定所述凸包的边缘点以及在所述凸包预设距离范围内的多个位置点作为候选寻路点;
基于在每个候选寻路点处,所述虚拟角色对于目标角色进行攻击的攻击得分和躲避得分,以及所述虚拟角色寻路到每个候选寻路点的寻路开销,从多个候选寻路点中确定出所述虚拟角色需要去往的目的地,并控制所述虚拟角色寻路到确定出的目的地。
19.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至9任一项所述游戏中的寻路方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至9任一项所述游戏中的寻路方法的步骤。
CN201911077780.9A 2019-11-06 2019-11-06 一种游戏中的寻路方法、终端及可读存储介质 Active CN110812844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911077780.9A CN110812844B (zh) 2019-11-06 2019-11-06 一种游戏中的寻路方法、终端及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911077780.9A CN110812844B (zh) 2019-11-06 2019-11-06 一种游戏中的寻路方法、终端及可读存储介质

Publications (2)

Publication Number Publication Date
CN110812844A CN110812844A (zh) 2020-02-21
CN110812844B true CN110812844B (zh) 2023-04-07

Family

ID=69552941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911077780.9A Active CN110812844B (zh) 2019-11-06 2019-11-06 一种游戏中的寻路方法、终端及可读存储介质

Country Status (1)

Country Link
CN (1) CN110812844B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111389002B (zh) * 2020-03-13 2023-04-14 网易(杭州)网络有限公司 游戏角色的移动控制方法、装置、设备及存储介质
CN111714892B (zh) * 2020-06-29 2024-04-12 天津亚克互动科技有限公司 游戏寻路方法及装置、存储介质、计算机设备
CN111760268B (zh) * 2020-07-06 2021-06-08 网易(杭州)网络有限公司 一种游戏中的寻路控制方法及装置
CN112044074B (zh) * 2020-09-04 2024-06-11 网易(杭州)网络有限公司 对非玩家角色寻路的方法、装置、存储介质及计算机设备
CN112023401A (zh) * 2020-09-11 2020-12-04 北京冰封互娱科技有限公司 寻路恢复的处理方法、装置及电子设备
CN112295225B (zh) * 2020-11-02 2021-08-10 不鸣科技(杭州)有限公司 一种寻路网格的多线程更新方法
CN112221144B (zh) * 2020-11-03 2024-03-15 网易(杭州)网络有限公司 三维场景寻路方法及装置、三维场景地图处理方法及装置
CN112473142A (zh) * 2020-11-06 2021-03-12 杭州电魂网络科技股份有限公司 渐进式寻路的方法、系统、电子装置和存储介质
CN112370787A (zh) * 2020-11-17 2021-02-19 网易(杭州)网络有限公司 虚拟角色的控制方法、计算机可读存储介质及处理器
CN113101665B (zh) * 2021-05-10 2024-06-11 网易(杭州)网络有限公司 路网生成方法、装置、存储介质及计算机设备
CN113426131B (zh) * 2021-07-02 2023-06-30 腾讯科技(成都)有限公司 虚拟场景的画面生成方法、装置、计算机设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120102913A (ko) * 2011-03-09 2012-09-19 김진우 라우팅 포인트를 이용한 접속 지역 탐지 및 방법
CN103020443A (zh) * 2012-12-08 2013-04-03 大连创达技术交易市场有限公司 一种地图训练的方法
CN104548598A (zh) * 2014-12-31 2015-04-29 北京像素软件科技股份有限公司 一种虚拟现实场景中寻路的方法
CN104759097A (zh) * 2015-04-13 2015-07-08 四川天上友嘉网络科技有限公司 游戏中的自动寻路方法
CN106730841A (zh) * 2017-01-17 2017-05-31 网易(杭州)网络有限公司 一种寻路方法和装置
CN107433039A (zh) * 2016-05-26 2017-12-05 齐游网络科技(上海)有限公司 Ai动态自动寻路方法
CN109432777A (zh) * 2018-10-26 2019-03-08 网易(杭州)网络有限公司 路径生成方法及装置、电子设备、存储介质
CN109568959A (zh) * 2019-01-12 2019-04-05 孙伟乐 一种支持游戏内大量单位同时寻路的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120102913A (ko) * 2011-03-09 2012-09-19 김진우 라우팅 포인트를 이용한 접속 지역 탐지 및 방법
CN103020443A (zh) * 2012-12-08 2013-04-03 大连创达技术交易市场有限公司 一种地图训练的方法
CN104548598A (zh) * 2014-12-31 2015-04-29 北京像素软件科技股份有限公司 一种虚拟现实场景中寻路的方法
CN104759097A (zh) * 2015-04-13 2015-07-08 四川天上友嘉网络科技有限公司 游戏中的自动寻路方法
CN107433039A (zh) * 2016-05-26 2017-12-05 齐游网络科技(上海)有限公司 Ai动态自动寻路方法
CN106730841A (zh) * 2017-01-17 2017-05-31 网易(杭州)网络有限公司 一种寻路方法和装置
CN109432777A (zh) * 2018-10-26 2019-03-08 网易(杭州)网络有限公司 路径生成方法及装置、电子设备、存储介质
CN109568959A (zh) * 2019-01-12 2019-04-05 孙伟乐 一种支持游戏内大量单位同时寻路的方法

Also Published As

Publication number Publication date
CN110812844A (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
CN110812844B (zh) 一种游戏中的寻路方法、终端及可读存储介质
KR102152192B1 (ko) 로봇의 경로 계획 시스템, 방법, 로봇 및 매체
EP3339806B1 (en) Navigation for vehicle based on parallel processing to determine collision-free paths
CN110755848B (zh) 一种游戏中的寻路方法、终端及可读存储介质
TWI664836B (zh) 控制模擬對象尋路的方法、裝置及伺服器
EP3689215B1 (en) Region attribute determination
CN107690605B (zh) 一种航线编辑方法、装置及控制设备
JP2019512668A (ja) ルート逸脱認識方法、端末、および記憶媒体
CN111375205B (zh) 游戏中寻路路径的处理方法、装置、电子设备及存储介质
JP7277671B2 (ja) スパニングツリーを用いたセル結合による領域分割 本開示は、一般に、領域分割に関し、特に、位置情報ゲームで使用するための異なる地域の特定に関するものである。
CN108638062A (zh) 机器人定位方法、装置、定位设备及存储介质
JP2003150980A (ja) ビデオゲーム装置、ビデオゲームにおけるキャラクタの表示方法、プログラム及び記録媒体
CN113101663B (zh) 游戏的寻路控制方法、装置、处理设备及存储介质
CN111603768A (zh) 一种游戏地图的存储、游戏地图的显示方法及装置
JP2017144234A (ja) IoT機器を利用して拡張現実を実現した戦場オンラインゲーム
JP2022540283A (ja) 仮想シーンにおける仮想オブジェクト制御方法、装置、機器及びコンピュータプログラム
CN109260709B (zh) 一种动态路线的生成方法及装置
CN115779424A (zh) 一种导航网格寻路方法、装置、设备及介质
JP7341801B2 (ja) ビデオゲーム処理プログラム、及びビデオゲーム処理システム
CN114526738A (zh) 一种基于深度强化学习的移动机器人视觉导航方法及装置
CN113413601A (zh) 寻路方法及装置
KR102317103B1 (ko) Iot 기기를 이용해서 증강 현실을 구현한 전장 온라인 게임
JP4804226B2 (ja) シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体
CN117553804B (zh) 路径规划方法、装置、计算机设备和存储介质
US20240017170A1 (en) Method and apparatus for prompting task, storage medium, and electronic device

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
GR01 Patent grant
GR01 Patent grant