掌桥专利:专业的专利平台
掌桥专利
首页

命中角色的确定方法、装置、存储介质及计算机设备

文献发布时间:2023-06-19 11:09:54


命中角色的确定方法、装置、存储介质及计算机设备

技术领域

本申请涉及游戏开发技术领域,具体涉及一种命中角色的确定方法、装置、存储介质及计算机设备。

背景技术

在许多游戏,如即时战略游戏(Real Time Strategy Games,RTS)或者多人联机在线竞技游戏(Multiplayer Online Battle Arena,MOBA)中,玩家控制角色(PlayerCharacter,PC)或非玩家控制角色(Non-Player Character,NPC)通常可以释放范围性作用技能(Area Of Effect,AOE),当某个单位释放技能后,需要判断其他单位是否被该技能命中,并进行游戏画面的渲染。

目前,对于AOE技能,通常影响范围有圆形、扇形、矩形等,在判断有哪些单位被AOE技能命中时,需要依次计算整个游戏场景中各个单位与技能单位之间的距离,然后根据计算距离和AOE技能的影响范围判断是否命中,当战斗场景比较大,单位比较多时,这种命中单位的确定方式需要遍历战场中的每个单位,涉及大量计算,处理效率较低,容易造成游戏画面卡顿等现象。

发明内容

本申请的目的在于提供一种命中角色的确定方法、装置、存储介质及计算机设备,能在游戏角色发动技能时,快速确定出技能命中角色,计算量小,处理效率高。

本申请实施例提供了一种命中角色的确定方法,包括:

获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,所述至少一个游戏角色包括目标游戏角色;

根据所述第一位置坐标,建立所述坐标系中各个坐标轴对应的所述至少一个游戏角色的双向链表,得到双向链表集,每一所述坐标轴对应一个所述双向链表;

当所述目标游戏角色释放技能时,确定所述技能的影响区域;

根据所述影响区域和所述双向链表集,从剩余的所述游戏角色中确定所述技能的命中角色。

本申请实施例还提供了一种命中角色的确定装置,包括:

获取模块,用于获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,所述至少一个游戏角色包括目标游戏角色;

建立模块,用于根据所述第一位置坐标,建立所述坐标系中各个坐标轴对应的所述至少一个游戏角色的双向链表,得到双向链表集,每一所述坐标轴对应一个所述双向链表;

第一确定模块,用于当所述目标游戏角色释放技能时,确定所述技能的影响区域;

第二确定模块,用于根据所述影响区域和所述双向链表集,从剩余的所述游戏角色中确定所述技能的命中角色。

其中,所述第二确定模块具体包括:

第一确定单元,用于确定包含所述影响区域的拟合区域;

第二确定单元,用于确定所述拟合区域的中心点在所述坐标系中的第二位置坐标、以及所述拟合区域在各个所述坐标轴方向上的投影边长;

第三确定单元,用于根据所述第二位置坐标,确定所述中心点在所述双向链表集中每个所述双向链表的插入位置;

第四确定单元,用于根据所述插入位置、所述双向链表集和所述投影边长,从剩余的所述游戏角色中确定所述技能的命中角色。

其中,所述第一确定单元具体用于:

获取所述影响区域中轮廓点在所述坐标系中的第三位置坐标;

根据所述第三位置坐标确定所述影响区域在各个所述坐标轴上的最大坐标分量和最小坐标分量;

根据各个所述坐标轴上的最大坐标分量和最小坐标分量,确定相应顶点;

根据所述顶点形成包含所述影响区域的拟合区域。

其中,所述第四确定单元具体用于:

以所述插入位置为中心,向对应的所述双向链表的两端进行节点遍历;

在遍历过程中,计算每个已遍历的节点与所述插入位置之间的距离;

当所述距离不满足预设条件时,停止遍历,所述预设条件包括所述距离与相应的所述投影边长之间的比值小于预设阈值;

根据所述已遍历的节点,从剩余的所述游戏角色中确定至少一个备选角色;

选取所述第一位置坐标位于所述影响区域内的相应备选角色,作为所述技能的命中角色。

其中,所述第四确定单元具体用于:

获取满足所述预设条件的所述已遍历的节点,作为目标节点;

当所有所述双向链表中存在同一所述游戏角色对应的所述目标节点时,将对应的所述游戏角色作为备选角色。

其中,所述建立模块具体用于:

获取每个所述第一位置坐标在所述坐标系中各个坐标轴上对应的坐标分量;

根据同一所述坐标轴对应的所述坐标分量,对所述至少一个游戏角色进行排序;

根据排序顺序和所述第一位置坐标,建立对应的双向链表,其中,每个所述游戏角色均对应所述双向链表中的一个节点,所述节点在所述双向链表中的链接顺序与所述排序顺序一致,且每个所述节点指向对应所述游戏角色的所述第一位置坐标。

其中,还包括更新模块,用于:

在所述建立模块根据排序顺序和所述第一位置坐标,建立对应的双向链表之后,通过所述虚拟游戏场景对应的游戏界面,获取针对所述游戏角色输入的移动操作;

根据所述移动操作更新对应游戏角色的所述第一位置坐标;

根据更新后的所述第一位置坐标更新所述排序顺序;

根据更新后的所述排序顺序和所述第一位置坐标,更新对应的所述双向链表。

本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有多条指令,指令适于由处理器加载以执行上述任一项命中角色的确定方法。

本申请实施例还提供了一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一项命中角色的确定方法中的步骤。

本申请提供的命中角色的确定方法、装置、存储介质及计算机设备,通过获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,并根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,之后,当该目标游戏角色释放技能时,确定该技能的影响区域,并根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色,从而在游戏角色发动技能时,可以基于链表对部分游戏角色进行遍历即可快速高效地选择出命中目标,无需对整个游戏场景进行遍历,避免游戏场景较大、参与角色较多时,因整体遍历操作涉及大量计算导致处理效率较低,耗时较长的问题,有利于游戏画面的顺畅运行。

附图说明

下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。

图1是本申请实施例提供的命中角色的确定方法的场景示意图;

图2是本申请实施例提供的命中角色的确定方法的流程示意图;

图3是本申请实施例提供的二维坐标系对应的双向链表的展示示意图;

图4是本申请实施例提供的技能的影响区域的展示示意图;

图5是本申请实施例提供的命中角色的确定方法的另一流程示意图;

图6是本申请实施例提供的X轴对应的双向链表中插入位置的展示示意图;

图7是本申请实施例提供的命中角色的确定装置的结构示意图;

图8是本申请实施例提供的命中角色的确定装置的另一结构示意图;

图9是本申请实施例提供的计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种命中角色的确定方法、装置、存储介质及计算机设备。

请参阅图1,图1为本申请实施例提供的命中角色的确定方法的场景示意图,该命中角色的确定系统可以应用于计算机设备中,该计算机设备具体为服务器或终端,其中,服务器可以包括但不限于MOBA(Multiplayer Online Battle Arena,多人联机在线竞技)游戏的后台服务器,终端可以包括但不限于智能手机、平板电脑、游戏机等设备。

获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,该至少一个游戏角色包括目标游戏角色;根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,每一该坐标轴对应一个该双向链表;当该目标游戏角色释放技能时,确定该技能的影响区域;根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色。

其中,虚拟游戏场景可以是MOBA等游戏的场景,坐标系可以是二维坐标系或者三维坐标系。双向链表由一系列节点组成,节点可以在运行时动态生成,其是一种物理存储单元上非连续、非顺序的存储结构,节点的逻辑顺序是通过链表中的指针链接次序实现的,每个节点可以包括两个部分:一个是存储数据元素的数据域,一个是存储前驱节点地址和后继节点地址的指针域。影响区域的大小通常是系统默认设置的,不同技能的影响区域的大小可能不同。

比如请参见图1,计算机设备可以是服务器,坐标系可以是二维坐标系XOY,坐标轴包括X轴和Y轴,虚拟游戏场景中可以包括n个游戏角色A1,A2…An,根据它们的第一位置坐标建立的X轴的双向链表的节点链接顺序大致可以为A1<A5<A2…<An,Y轴的双向链表的节点链接顺序大致可以为A1<A2<A5…<A3。当游戏角色A2需要释放技能M,且技能M的影响范围为半径为R的圆形区域时,可以将以A2为中心、且半径为R的圆形区域作为该技能M的影响区域N,之后,根据影响区域N和双向链表确定技能M的命中角色,比如游戏角色A1和A5。

如图2所示,图2是本申请实施例提供的命中角色的确定方法的流程示意图,该命中角色的确定方法应用于计算机设备,具体流程可以如下:

S101.获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,该至少一个游戏角色包括目标游戏角色。

其中,虚拟游戏场景可以是MOBA等游戏的场景,坐标系可以是二维坐标系或者三维坐标系。游戏角色可以是虚拟游戏场景中出现的所有玩家操控角色,这些角色可以包括同一阵营和不同阵营的角色。

S102.根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,每一该坐标轴对应一个该双向链表。

其中,双向链表由一系列节点组成,节点可以在运行时动态生成,其是一种物理存储单元上非连续、非顺序的存储结构,节点的逻辑顺序是通过链表中的指针链接次序实现的,每个节点可以包括两个部分:一个是存储数据元素的数据域,一个是存储前驱节点地址和后继节点地址的指针域。

具体的,上述步骤S102可以包括:

获取每个该第一位置坐标在该坐标系中各个坐标轴上对应的坐标分量;

根据同一该坐标轴对应的该坐标分量,对该至少一个游戏角色进行排序;

根据排序顺序和该第一位置坐标,建立对应的双向链表,其中,每个该游戏角色均对应该双向链表中的一个节点,该节点在该双向链表中的链接顺序与该排序顺序一致,且每个该节点指向对应该游戏角色的该第一位置坐标。

比如,对于二维坐标系,可以分别根据每个游戏角色的横坐标和纵坐标,建立两个双向链表,如图3所示,在二维坐标系XOY中,对于游戏角色A1-A5,其第一位置坐标可以分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5),可以建立一个横坐标对应的双向链表L1、以及一个纵坐标对应的双向链表L2,其中,在双向链表L1中,节点的链接顺序可以为x1

进一步地,当游戏开始或者开始之后一段时间内,可以及时根据游戏场景中出现的游戏角色建立双向链表集,后续只需根据游戏中游戏角色的移动,消失或者新增,来实时更新建立好的双向链表即可,比如,在上述步骤“根据排序顺序和该第一位置坐标,建立对应的双向链表”之后,该命中角色的确定方法还可以包括:

通过该虚拟游戏场景对应的游戏界面,获取针对该游戏角色输入的移动操作;

根据该移动操作更新对应游戏角色的该第一位置坐标;

根据更新后的该第一位置坐标更新该排序顺序;

根据更新后的该排序顺序和该第一位置坐标,更新对应的该双向链表。

其中,可以在移动终端上显示游戏界面,玩家用户通过游戏界面上的功能按键,比如方向盘,来控制游戏角色进行前后左右移动,进而改变角色位置,当监测到某个游戏角色发生了位置移动时,可以根据变化后的位置调整双向链表,使双向链表中节点的链接顺序与游戏角色实际排序顺序一致。

S103.当该目标游戏角色释放技能时,确定该技能的影响区域。

其中,当任一游戏角色需要发动技能时,可以将其作为目标游戏角色。影响区域的大小和形状通常是系统默认设置的,其可以是平面区域,比如圆形区域,也可以是立体区域,比如球形区域。通常,不同技能可以对应不同大小和形状的影响区域,比如,请参见图4,对于技能H1,影响区域可以为以目标游戏角色Ai所在位置为中心,半径为R的圆形区域,对于技能H2,影响区域可以为以目标游戏角色Ai所在位置为底边中心,目标游戏角色Ai的朝向角度为区域朝向,边长为L的正三角形区域。当然,影响区域除了与技能本身有关,也可以和游戏角色有关,比如,同一游戏角色在不同时期释放同一技能时,其影响区域的大小或形状也可以发生变化。

S104.根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色。

具体的,请参见图5,上述步骤S104可以包括下述步骤S1041-S1044,其中:

S1041.确定包含该影响区域的拟合区域。

其中,拟合区域可以是影响区域的最小外切矩形对应的区域。

具体的,上述步骤S1041可以包括:

获取该影响区域中轮廓点在该坐标系中的第三位置坐标;

根据该第三位置坐标确定该影响区域在各个该坐标轴上的最大坐标分量和最小坐标分量;

根据各个该坐标轴上的最大坐标分量和最小坐标分量,确定相应顶点;

根据该顶点形成包含该影响区域的拟合区域。

其中,可以先找出影响区域在各个坐标轴上对应的最大值和最小值,比如对于上述游戏角色A1-A5,X轴上最大值和最小值分别为x1和x3,Y轴上最大值和最小值分别为y4和y3,则可以得到四个顶点(x1,y4),(x1,y3),(x,y4),(x3,y3),以这四个顶点连线形成的区域即为影响区域的外切矩形对应的区域,也即拟合区域,其大小通常大于或等于影响区域的大小。

S1042.确定该拟合区域的中心点在该坐标系中的第二位置坐标、以及该拟合区域在各个该坐标轴方向上的投影边长。

其中,中心点通常是拟合区域的几何中心,对于拟合区域为平面的外切矩形来说,投影边长可以为矩形的长和宽。

S1043.根据该第二位置坐标,确定该中心点在该双向链表集中每个该双向链表的插入位置。

其中,可以采用遍历方式,将中心点的第二位置坐标的各个坐标分量,与相应坐标轴对应的双向链表中各节点对应的第一位置坐标进行比对,找到位于中心点前后最接近的两个节点,将这两个链表节点之间的任意位置作为插入位置,比如,请参见图6,对于X轴的双向链表L1,若发现中心点M的X轴坐标x0位于x2和x5之间,则可以将x2和x5所对应节点之间的任意位置作为中心点在该双向链表L1上的插入位置。

S1044.根据该插入位置、该双向链表集和该投影边长,从剩余的该游戏角色中确定该技能的命中角色。

具体的,上述步骤S1044可以包括:

以该插入位置为中心,向对应的该双向链表的两端进行节点遍历;

在遍历过程中,计算每个已遍历的节点与该插入位置之间的距离;

当该距离不满足预设条件时,停止遍历,该预设条件包括该距离与相应的该投影边长之间的比值小于预设阈值;

根据该已遍历的节点,从剩余的该游戏角色中确定至少一个备选角色;

选取该第一位置坐标位于该影响区域内的相应备选角色,作为该技能的命中角色。

其中,预设阈值可以根据拟合区域的形状而定,比如,当为矩形时,预设阈值可以为0.5。具体的,以插入位置为中心,向双向链表的两端进行遍历,越远离插入位置的节点,两者之间的距离越大,若某个节点与插入位置之间的距离未超出规定范围(比如0.5倍的投影边长),则表示节点对应的游戏角色位于拟合区域内,可以继续遍历,一旦超出规定范围则表示节点对应的游戏角色位于拟合区域外,不可能受技能影响,可以停止遍历。

通过这种方式,可以较快找出位于拟合区域内的所有游戏角色(也即备选角色),无需对游戏场景中的每个游戏角色都进行遍历,极大地减少了整体遍历所需的计算量和时长。之后,考虑到拟合区域通常大于影响区域,故还需对备选角色进一步比对分析,比如判断其距离影响区域的中心点的距离是否小于半径R,满足条件的备选角色即为命中角色。

进一步地,上述步骤“根据该已遍历的节点,从剩余的该游戏角色中确定至少一个备选角色”,包括:

获取满足该预设条件的该已遍历的节点,作为目标节点;

当所有该双向链表中存在同一该游戏角色对应的该目标节点时,将对应的该游戏角色作为备选角色。

其中,对于某个游戏角色,若各个坐标轴对应的双向链表中,其节点与插入位置之间的距离均满足预设条件,则表示该游戏角色的坐标位置一定在拟合区域内,可以将该游戏角色作为备选角色,否则,在拟合区域外。容易理解的是,可以对每个双向链表都进行遍历,之后将同时满足多个双向链表的遍历结果的同一游戏角色作为备选角色,也可以先取其中一个双向链表进行遍历,确定满足预设条件的节点对应的游戏角色,之后,找到其他双向链表上该游戏角色对应的节点,计算其与插入位置之间的距离,若也满足条件则作为备选角色。

比如,拟合区域可以是长为W,宽为H的外切矩形,请继续参见图6,对于双向链表L1,以x0为中心向两端遍历节点,一旦某个节点的x轴坐标与x0之间的距离大于或等于W/2,则停止遍历,比如往左遍历到x3,往右遍历到x4时停止遍历,此时,遍历过的节点包括x2、x5、x4和x3,之后可以进一步对x5、x4对应的游戏角色A5、A4的y轴坐标进行比对,一旦其中某个节点的y轴坐标与y0之间的距离大于或等于H/2,则将该节点对应的游戏角色作为命中角色,比如游戏角色A4为命中角色。

由上述可知,本实施例提供的命中角色的确定方法,通过获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,并根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,之后,当该目标游戏角色释放技能时,确定该技能的影响区域,并根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色,从而在游戏角色发动技能时,可以基于链表对部分游戏角色进行遍历即可快速高效地选择出命中目标,无需对整个游戏场景进行遍历,避免游戏场景较大、参与角色较多时,因整体遍历操作涉及大量计算导致处理效率较低,耗时较长的问题,有利于游戏画面的顺畅运行。

在上述实施例的基础上,本实施例将从命中角色的确定装置的角度进一步进行描述,请参阅图7,图7具体描述了本申请实施例提供的命中角色的确定装置,其可以包括:获取模块10、建立模块20、第一确定模块30和第二确定模块40,其中:

(1)获取模块10

获取模块10,用于获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,该至少一个游戏角色包括目标游戏角色。

其中,虚拟游戏场景可以是MOBA等游戏的场景,坐标系可以是二维坐标系或者三维坐标系。游戏角色可以是虚拟游戏场景中出现的所有玩家操控角色,这些角色可以包括同一阵营和不同阵营的角色。

(2)建立模块20

建立模块20,用于根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,每一该坐标轴对应一个该双向链表。

其中,双向链表由一系列节点组成,节点可以在运行时动态生成,其是一种物理存储单元上非连续、非顺序的存储结构,节点的逻辑顺序是通过链表中的指针链接次序实现的,每个节点可以包括两个部分:一个是存储数据元素的数据域,一个是存储前驱节点地址和后继节点地址的指针域。

具体的,该建立模块20可以用于:

获取每个该第一位置坐标在该坐标系中各个坐标轴上对应的坐标分量;

根据同一该坐标轴对应的该坐标分量,对该至少一个游戏角色进行排序;

根据排序顺序和该第一位置坐标,建立对应的双向链表,其中,每个该游戏角色均对应该双向链表中的一个节点,该节点在该双向链表中的链接顺序与该排序顺序一致,且每个该节点指向对应该游戏角色的该第一位置坐标。

比如,对于二维坐标系,可以分别根据每个游戏角色的横坐标和纵坐标,建立两个双向链表,如图3所示,在二维坐标系XOY中,对于游戏角色A1-A5,其第一位置坐标可以分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5),可以建立一个横坐标对应的双向链表L1、以及一个纵坐标对应的双向链表L2,其中,在双向链表L1中,节点的链接顺序可以为x1

进一步地,当游戏开始或者开始之后一段时间内,可以及时根据游戏场景中出现的游戏角色建立双向链表集,后续只需根据游戏中游戏角色的移动,消失或者新增,来实时更新建立好的双向链表即可,比如,请参见图8,该命中角色的确定装置还包括更新模块50,用于:

在该建立模块20根据排序顺序和该第一位置坐标,建立对应的双向链表之后,通过该虚拟游戏场景对应的游戏界面,获取针对该游戏角色输入的移动操作;

根据该移动操作更新对应游戏角色的该第一位置坐标;

根据更新后的该第一位置坐标更新该排序顺序;

根据更新后的该排序顺序和该第一位置坐标,更新对应的该双向链表。

其中,可以在移动终端上显示游戏界面,玩家用户通过游戏界面上的功能按键,比如方向盘,来控制游戏角色进行前后左右移动,进而改变角色位置,当监测到某个游戏角色发生了位置移动时,可以根据变化后的位置调整双向链表,使双向链表中节点的链接顺序与游戏角色实际排序顺序一致。

(3)第一确定模块30

第一确定模块30,用于当该目标游戏角色释放技能时,确定该技能的影响区域。

其中,当任一游戏角色需要发动技能时,可以将其作为目标游戏角色。影响区域的大小和形状通常是系统默认设置的,其可以是平面区域,比如圆形区域,也可以是立体区域,比如球形区域。通常,不同技能可以对应不同大小和形状的影响区域,比如,请参见图4,对于技能H1,影响区域可以为以目标游戏角色Ai所在位置为中心,半径为R的圆形区域,对于技能H2,影响区域可以为以目标游戏角色Ai所在位置为底边中心,目标游戏角色Ai的朝向角度为区域朝向,边长为L的正三角形区域。当然,影响区域除了与技能本身有关,也可以和游戏角色有关,比如,同一游戏角色在不同时期释放同一技能时,其影响区域也可以发生变化。

(4)第二确定模块40

第二确定模块40,用于根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色。

其中,在图8中,该第二确定模块40具体包括:

第一确定单元41,用于确定包含该影响区域的拟合区域。

具体的,该第一确定单元41可以用于:

获取该影响区域中轮廓点在该坐标系中的第三位置坐标;

根据该第三位置坐标确定该影响区域在各个该坐标轴上的最大坐标分量和最小坐标分量;

根据各个该坐标轴上的最大坐标分量和最小坐标分量,确定相应顶点;

根据该顶点形成包含该影响区域的拟合区域。

其中,可以先找出影响区域在各个坐标轴上对应的最大值和最小值,比如对于上述游戏角色A1-A5,X轴上最大值和最小值分别为x1和x3,Y轴上最大值和最小值分别为y4和y3,则可以得到四个顶点(x1,y4),(x1,y3),(x,y4),(x3,y3),以这四个顶点连线形成的区域即为影响区域的外切矩形对应的区域,也即拟合区域,其大小通常大于或等于影响区域的大小。

第二确定单元42,用于确定该拟合区域的中心点在该坐标系中的第二位置坐标、以及该拟合区域在各个该坐标轴方向上的投影边长。

其中,中心点通常是拟合区域的几何中心,对于拟合区域为平面的外切矩形来说,投影边长可以为矩形的长和宽。

第三确定单元43,用于根据该第二位置坐标,确定该中心点在该双向链表集中每个该双向链表的插入位置。

其中,可以采用遍历方式,将中心点的第二位置坐标的各个坐标分量,与相应坐标轴对应的双向链表中各节点对应的第一位置坐标进行比对,找到位于中心点前后最接近的两个节点,将这两个链表节点之间的任意位置作为插入位置,比如,请参见图6,对于X轴的双向链表L1,若发现中心点M的X轴坐标x0位于x2和x5之间,则可以将x2和x5所对应节点之间的任意位置作为中心点在该双向链表L1上的插入位置。

第四确定单元44,用于根据该插入位置、该双向链表集和该投影边长,从剩余的该游戏角色中确定该技能的命中角色。

具体的,该第四确定单元44可以用于:

以该插入位置为中心,向对应的该双向链表的两端进行节点遍历;

在遍历过程中,计算每个已遍历的节点与该插入位置之间的距离;

当该距离不满足预设条件时,停止遍历,该预设条件包括该距离与相应的该投影边长之间的比值小于预设阈值;

根据该已遍历的节点,从剩余的该游戏角色中确定至少一个备选角色;

选取该第一位置坐标位于该影响区域内的相应备选角色,作为该技能的命中角色。

其中,预设阈值可以根据拟合区域的形状而定,比如,当为矩形时,预设阈值可以为0.5。具体的,以插入位置为中心,向双向链表的两端进行遍历,越远离插入位置的节点,两者之间的距离越大,若某个节点与插入位置之间的距离未超出规定范围(比如0.5倍的投影边长),则表示节点对应的游戏角色位于拟合区域内,可以继续遍历,一旦超出规定范围则表示节点对应的游戏角色位于拟合区域外,不可能受技能影响,可以停止遍历。

通过这种方式,可以较快找出位于拟合区域内的所有游戏角色(也即备选角色),无需对游戏场景中的每个游戏角色都进行遍历,极大地减少了整体遍历所需的计算量和时长。之后,考虑到拟合区域通常大于影响区域,故还需对备选角色进一步比对分析,比如判断其距离影响区域的中心点的距离是否小于半径R,满足条件的备选角色即为命中角色。

进一步地,该第四确定单元44可以用于:

获取满足该预设条件的该已遍历的节点,作为目标节点;

当所有该双向链表中存在同一该游戏角色对应的该目标节点时,将对应的该游戏角色作为备选角色。

其中,对于某个游戏角色,若各个坐标轴对应的双向链表中,其节点与插入位置之间的距离均满足预设条件,则表示该游戏角色的坐标位置一定在拟合区域内,可以将该游戏角色作为备选角色,否则,在拟合区域外。容易理解的是,可以对每个双向链表都进行遍历,之后将同时满足多个双向链表的遍历结果的同一游戏角色作为备选角色,也可以先取其中一个双向链表进行遍历,确定满足预设条件的节点对应的游戏角色,之后,找到其他双向链表上该游戏角色对应的节点,计算其与插入位置之间的距离,若也满足条件则作为备选角色。

比如,拟合区域可以是长为W,宽为H的外切矩形,请继续参见图6,对于双向链表L1,以x0为中心向两端遍历节点,一旦某个节点的x轴坐标与x0之间的距离大于或等于W/2,则停止遍历,比如往左遍历到x3,往右遍历到x4时停止遍历,此时,遍历过的节点包括x2、x5、x4和x3,之后可以进一步对x5、x4对应的游戏角色A5、A4的y轴坐标进行比对,一旦其中某个节点的y轴坐标与y0之间的距离大于或等于H/2,则将该节点对应的游戏角色作为命中角色,比如游戏角色A4为命中角色。

具体实施时,以上各个单元和模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元和模块的具体实施可参见前面的方法实施例,在此不再赘述。

由上可知,本实施例提供的命中角色的确定装置,通过获取模块10获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,建立模块20根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,之后,当该目标游戏角色释放技能时,第一确定模块30确定该技能的影响区域,第二确定模块40根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色,从而在游戏角色发动技能时,可以基于链表对部分游戏角色进行遍历即可快速高效地选择出命中目标,无需对整个游戏场景进行遍历,避免游戏场景较大、参与角色较多时,因整体遍历操作涉及大量计算导致处理效率较低,耗时较长的问题,有利于游戏画面的顺畅运行。

相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理(Personal Digital Assistant,PDA)等设备。如图9所示,图9为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。

在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:

获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,该至少一个游戏角色包括目标游戏角色;

根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,每一该坐标轴对应一个该双向链表;

当该目标游戏角色释放技能时,确定该技能的影响区域;

根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

可选的,如图9所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。

在本申请实施例中,通过处理器401执行游戏应用程序在触控显示屏403上生成虚拟三维场景的画面,该画面中包括图形用户界面(UI界面),该图形用户界面中包括第二空间方位指示器,该第二空间方位指示器上显示了目标对象所对应的空间方位标识,该空间方位标识用于标示目标对象所在的方位。

该触控显示屏403可以用于呈现虚拟三维场景的画面,以及图形用户界面并接收用户作用于图形用户界面产生的操作指令。

射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。

音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。

输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管图9中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种命中角色的确定方法中的步骤。例如,该计算机程序可以执行如下步骤:

获取虚拟游戏场景中至少一个游戏角色在坐标系中的第一位置坐标,该至少一个游戏角色包括目标游戏角色;

根据该第一位置坐标,建立该坐标系中各个坐标轴对应的该至少一个游戏角色的双向链表,得到双向链表集,每一该坐标轴对应一个该双向链表;

当该目标游戏角色释放技能时,确定该技能的影响区域;

根据该影响区域和该双向链表集,从剩余的该游戏角色中确定该技能的命中角色。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种命中角色的确定方法中的步骤,因此,可以实现本申请实施例所提供的任一种命中角色的确定方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种命中角色的确定方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上该,本说明书内容不应理解为对本申请的限制。

相关技术
  • 命中角色的确定方法、装置、存储介质及计算机设备
  • 一种缓存命中率确定方法、装置、设备及可读存储介质
技术分类

06120112827917