控制对象的空间位置确定方法和装置与流程

文档序号:11536686阅读:267来源:国知局
控制对象的空间位置确定方法和装置与流程

本发明涉及计算机领域,具体而言,涉及一种控制对象的空间位置确定方法和装置。



背景技术:

现有技术中,在网络游戏应用中,通常涉及多个应用中的np同时攻击同一个目标的情况,这种在网络游戏中多个npc(non-playercharacter,非玩家控制角色)的ai(artificialintelligence人工智能控制)同时攻击同一个目标(如,玩家角色)时的站位表现,被称之为ai的合围机制。在目前的游戏引擎中,ai的合围机制的实现根据该游戏引擎是否带物体碰撞,分为两种:

1)带物理碰撞的游戏引擎:单机游戏(如星际争霸、魔兽争霸),网游(如轩辕传奇)等。这种游戏的特点是游戏中的所有物体(如上述的角色对象,如npc)在空间上是不可重叠的。因此在此类游戏应用中,多个npc的ai在攻击同一个目标时,npc会移动到距离目标较近的并且没有其他npc占据的空间上去。

2)无物理碰撞的游戏引擎:大部分的游戏应用都是不带物理碰撞引擎的,此类游戏的特点是游戏中的物体可以在空间上重叠,如图1所示的示意图中,在游戏界面中有4个npc(图1中的npc1、npc2、npc3和npc4)在攻击同一目标(如图1中的目标对象m1),该图1中4个npc中有三个npc(即npc1、npc2和npc3)在空间位置上发生重叠。因为没有物理碰撞,所以对某一个npc来说,游戏场景中的整片空间都是可以占用的,因此所有npc的可以选中同样的占位点,堆叠在一起。这样给玩家的体验是非常不真实的。

上述的游戏引擎中,无物理碰撞的引擎中会产生物体重叠;为了解决该问题,只能直接使用带理碰撞的游戏引擎,但是带理碰撞的游戏引擎的开发成本较高且运行效率会比较低。

针对上述在不带物理碰撞的游戏引擎中,使多个物体在空间位置上不发生重叠的方案运行效率低的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种控制对象的空间位置确定方法和装置,以至少解决在不带物理碰撞的游戏引擎中,使多个物体在空间位置上不发生重叠的方案运行效率低的技术问题。

根据本发明实施例的一个方面,提供了一种控制对象的空间位置确定方法,该方法包括:游戏应用的游戏引擎检测到空间位置请求,其中,空间位置请求用于请求根据游戏应用中的第一控制对象的第一空间位置确定第二控制对象的第二空间位置,游戏引擎为无物理碰撞引擎;游戏引擎根据第一控制对象的第一空间位置确定多个候选空间位置,其中,多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置不重叠;游戏引擎将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。

根据本发明实施例的另一方面,还提供了一种控制对象的空间位置确定装置,该装置包括:检测单元,用于游戏应用的游戏引擎检测到空间位置请求,其中,空间位置请求用于请求根据游戏应用中的第一控制对象的第一空间位置确定第二控制对象的第二空间位置,游戏引擎为无物理碰撞引擎;第一确定单元,用于游戏引擎根据第一控制对象的第一空间位置确定多个候选空间位置,其中,多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置不重叠;第二确定单元,用于游戏引擎将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。

采用本发明实施例,不带物理碰撞条件的游戏引擎,在检测到空间位置请求之后,根据第一控制对象的第一空间位置确定多个候选空间位置,并将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。由于上述实施例中的多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置也不重叠,从该多个空间位置中选取一个未被占用的位置作为第二控制对象的第二空间位置,若第二控制对象为多个,多个第二控制对象的位置不会发生重叠。通过上述方案,无需使用研发成本高、运行效率低的带物理碰撞的游戏引擎,即可在不带物理碰撞的游戏引擎中对多个第一控制对象分配不重叠的空间位置,解决了现有技术中游戏引擎中多个物体在空间位置上不产生重叠的方案运行效率低的问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据现有技术的一种确定物体的空间位置的示意图;

图2是根据本发明实施例的一种可选的计算机的网络环境示意图;

图3是根据本发明实施例的控制对象的空间位置确定方法的流程图;

图4是根据本发明实施例的一种可选的候选空间位置的分布示意图;

图5是根据本发明实施例的第二种可选的候选空间位置的分布示意图;

图6是根据本发明实施例的第三种可选的候选空间位置的分布示意图;

图7是根据本发明实施例的第四种可选的候选空间位置的分布示意图;

图8是根据本发明实施例的第五种可选的候选空间位置的分布示意图;

图9是根据本发明实施例的一种可选的空间位置请求生成的触发条件 示意图;

图10是根据本发明实施例的空间位置确定方法生成的游戏界面示意图;

图11是根据本发明实施例的控制对象的空间位置确定装置的示意图;以及

图12是根据本发明实施例的服务器的内部结构框图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种控制对象的空间位置确定方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

可选地,在本实施例中,上述控制对象的空间位置确定方法可以应用于如图2所示的网络环境中。该网络环境包括终端201和服务器203,其中,终端可以与服务器通过网络建立连接,终端和服务器上均可以设置处理器。

上述网络包括但不限于:广域网、城域网或局域网。优选地,上述的网络为局域网;上述终端可以包括个人计算机、移动终端(如手机、平板电脑等)。

图3是根据本发明实施例的控制对象的空间位置确定方法的流程图,如图3所示,该方法包括如下步骤:

步骤s302:游戏应用的游戏引擎检测到空间位置请求,其中,空间位置请求用于请求根据游戏应用中的第一控制对象的第一空间位置确定第二控制对象的第二空间位置,游戏引擎为无物理碰撞引擎,即,游戏应用中的控制对象在空间位置上被允许重叠;

步骤s304:游戏引擎根据第一控制对象的第一空间位置确定多个候选空间位置,其中,多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置不重叠;

步骤s306:游戏引擎将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。

在确定第二空间位置之后,生成携带有第二空间位置的信息的通知,第二控制对象的ai(如人工智能控制单元)接收到该通知之后,将第二控制对象自行移动至第二空间位置。

采用本发明实施例,不带物理碰撞条件的游戏引擎,在检测到空间位置请求之后,根据第一控制对象的第一空间位置确定多个候选空间位置,并将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。由于上述实施例中的多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空 间位置也不重叠,从该多个空间位置中选取一个未被占用的位置作为第二控制对象的第二空间位置,若第二控制对象为多个,多个第二控制对象的位置不会发生重叠。通过上述方案,无需使用研发成本高、运行效率低的带物理碰撞的游戏引擎,即可在不带物理碰撞的游戏引擎中对多个第一控制对象分配不重叠的空间位置,解决了现有技术中游戏引擎中多个物体在空间位置上不产生重叠的方案运行效率低的问题。

在上述实施例中的第一控制对象和第二控制对象可以为游戏角色,也可以为静态的游戏中的物体。上述实施例中的第二控制对象可以为人工智能控制的对象,空间位置请求也是第二控制对象的人工智能控制单元生成的,上述方法的执行主体可以是游戏引擎中的合围管理器。

例如,第一控制对象可以为游戏玩家,第二控制对象可以为npc,该游戏玩家可以为用户在使用游戏客户端时通过输入操作指令而控制的游戏角色。

通过上述实施例,在没有物理碰撞的条件下,为多个npc分配游戏应用的空间中不同的空间位置,且各个npc的空间位置各不相同,从而可以使ai通过合围机制让npc的站位表现更为真实和生动。

具体地,上述的游戏应用可以为网络游戏应用,用户可以通过游戏账号登录终端上安装的游戏客户端,进入游戏应用的游戏场景。在进入游戏场景之后,该游戏账号对应场景中的一个游戏角色(即上述实施例中的第一控制对象)。在游戏引擎接收到终端的游戏客户端的启动指令之后,响应于该启动指令,启动对应的游戏项目。在游戏开始之后,检测是否在游戏中出现npc,若出现了npc,检测是否生成有空间位置请求,若有空间位置请求,则确定与第一控制对象的第一空间位置对应的多个彼此不重叠的候选空间位置,从该多个空间位置中选取一个未被占用的候选空间位置确定为npc的第二空间位置,也即将该未被占用的候选空间位置分配至npc,通知该npc为其分配的第二空间位置,npc移动至该第二空间位置。

可选地,游戏引擎也可以直接将该npc移动至第二空间位置,本发明对此不做限定。

在上述实施例中,已经被其他npc锁定的空间位置不会被其他npc占用,可以让多个npc合围一个目标的时候,不产生重叠并尽量使得游戏真实,提高了用户体验。

图4示出了一种可选的候选空间位置的分布,如图4所示的实施例中,游戏引擎根据第一控制对象的第一空间位置确定多个候选空间位置包括:在以第一空间位置为中心的空间区域内确定多个候选空间位置,其中,每个候选空间位置与第一空间位置的距离不超过预设阈值。

如图4所示,以第一空间位置为中心,以预设阈值为半径,确定一个圆形的空间区域,在该圆形的空间区域中随机设置多个候选空间位置,则每个候选空间位置与该第一空间位置的距离不超过预设阈值,且该多个候选空间位置包围该第一空间位置。

因为,在游戏应用中第二控制对象需对第一控制对象执行操作(如合围、攻击等操作),将候选空间位置确定在距离第一空间位置不超过预设距离的范围内,可以更好的实现游戏的合围或攻击功能。

在一个可选的实施例中,在以第一空间位置为中心的空间区域内确定多个候选空间位置可以包括:在空间区域内,在以第一空间位置为中心的合围圈上设置多个候选空间位置。

具体地,合围圈为n个,其中,在以第一空间位置为中心的合围圈上设置多个候选空间位置包括:在n个合围圈中的每个合围圈上设置一组候选空间位置,其中,第i个合围圈上设置有第i组候选空间位置,n为自然数,i为小于等于n的自然数。

可以以第一空间位置为圆心设置n个合围圈,每个合围圈的半径不同,每个合围圈上设置一组候选空间位置,即,第i个合围圈上设置有第i组候选空间位置,这样减少了候选空间位置设置的随机性,提高了处理器的 性能;并且,每个合围圈上的候选空间位置距离一致,在选取第二空间位置时,可以一个合围圈一个合围圈的选取,如先选取第一个合围圈上的候选空间位置,若第一个合围圈上没有合适的位置,再选取第二个合围圈上的位置,以此类推。该方案与随机设置候选空间位置相比,设置时有规律、选取时也有规律,从而可以提高处理速度。

按照上述实施例设置候选空间位置时,第i组候选空间位置在第i个合围圈上均匀分布,每组候选空间位置的个数均不相同。

如图5所示,可以在确定的空间区域内,设置3个合围圈,三个合围圈的半径分别为r1、r2和r3,三个合围圈的半径不同,每个合围圈上设置一组候选空间位置,每组候选空间位置的个数也不同。图5中的第一组候选空间位置为5个、第二组候选空间位置为9个,第三组候选空间位置为13个,且每个合围圈上的候选空间位置均匀分布。

需要说明的是,本申请实施例中的合围圈仅是一个虚拟概念,可以按照半径距离直接设置候选空间位置,而不设置合围圈,也即在以第一控制对象为中心,按照不同的半径距离设置n组候选空间位置,每组候选空间位置距离第一控制对象的距离可以相同。

在一种可选的实施例中,在以第一空间位置为中心的合围圈上设置多个候选空间位置可以包括:按照第一控制对象和第二控制对象的属性信息设置下述至少之一:第i个合围圈与第一控制对象的距离、第i组候选空间位置的个数、以及第i组候选空间位置的分布方式。

在该可选的实施例中,可以按照第一控制对象和第二控制对象的属性确定合围圈的个数、每个合围圈与第一控制对象的距离、每组候选空间位置的个数、以及候选空间位置的分布方式(如均匀分布或不均匀分布)。

为了让多个npc合围同一个目标的时候不产生重叠并尽量能够真实,本申请实施例将多个候选空间位置称之为“阵形”。如图6所示,一个阵形是目标(即第一控制对象)周围一系列虚拟的点(即候选空间位置)。

在设置候选空间位置时,多个候选空间位置中的各个候选空间位置与目标对象(即第一控制对象)所在的第一空间位置的连接互不重合,以使处于每个候选空间位置上的npc对象均可直接对目标对象执行操作,也即,每个候选空间位置均被设置为可直接对目标对象执行操作的位置。

在一个可选的实现方案中,可以按照任意两个候选空间位置和第一空间位置确定的夹角来设置每个候选空间位置,该夹角以第一空间位置为顶点,以任意两个候选空间位置中一个候选空间位置与顶点的连线作为一条边,以任意两个候选空间位置中另一个候选空间位置与顶点的连线作为另一条边。

具体地,先将目标对象周围的空间(即上述实施例中的空间区域)离目标对象的距离远近分n个“合围圈”(如图6所示为三个合围圈,三个合围圈可以为半径分别为r1,r2,以及r3的三个圆周),在合围圈上的合适的角度上分配一个“合围点”(即候选空间位置),该合适的角度可以基于游戏应用的场景自定义,也可以根据目标对象和npc对象的属性设置,如图6所示,h1和h2的夹角、h3和h4的夹角、h5和h6的夹角分别为a1、a2和a3)。其中合围圈的半径r和数量n,每一合围圈上合围点的数量(此变量也可通过合围点的夹角a确定)均可根据业务需要自行定义。同样的,合围点的分布方式也不一定是合围圈的方式,可以是任意的形状。

需要进一步说明的是,为了使多个候选空间位置的合围效果更加逼真,可以对多个候选空间位置的相对位置按照偏移向量进行调整,如图7所示,可以对合围点的相对位置进行一些距离和角度上的随机偏移,造成参差不齐的效果,也即,调整后合围圈与第一控制对象的距离可以不变,每个合围圈上的候选空间位置发生变化,变化后的候选空间位置可以不再位于合围圈上。

上述实施例中确定第二空间位置时,可以按照预先定义的优先级选取方式选取,如按照距离最短优先的选取方式、距离相邻的候选空间位置最远的选取方式等,该预先定义的优先级选取方式也可根据业务需要自行定 义,一般来说可以遵循最短距离优先原则,也就是给npc(如怪物)分配一个距离目标对象较近的合围圈上离自己当前位置最近的合围点。

也即,游戏引擎将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置可以包括:将多个候选空间位置中一个距离第一空间位置最近、且未被占用的候选空间位置确定为第二控制对象的第二空间位置。

具体地,在确定第一空间位置之后,获取距离第一空间位置最近的合围圈,从当前获取的合围圈中选取未被占用的候选空间位置,若该当前获取的合围圈中的候选空间位置均被占用,则获取下一个距离最近的合围圈,以此类推,直至找到被占用的合围圈。

在上述实施例中,若同一个合围圈中有几个未被占用的候选空间位置,则可以随机从该未被占用的候选空间位置中选取一个作为第二空间位置;也可以从该未被占用的候选空间位置中选取一个距离第二控制对象当前位置最近的位置作为第二空间位置;若第二控制对象的当前位置为空(也即,第二控制对象尚未存在于该游戏空间中),则可以随机选取。

在本发明的上述实施例中,每个候选空间位置可以具有一个状态标志,该状态标志用于指示候选空间位置是否被占用,也即,可以通过状态标志确定对应的候选空间位置是否被占用。在将多个候选空间位置中一个距离第一空间位置最近、且未被占用的候选空间位置确定为第二控制对象的第二空间位置之后,将距离第一空间位置最近、且未被占用的候选空间位置的状态修改为被占用状态。

每次确定好第二空间位置之后,把确定的第二空间位置的状态修改为被占用状态,同理,在每次npc消失之后,将消失的npc的空间位置的状态再修改回未被占用的状态,以下次选取空间位置时可以保证准确确定第二控制对象的空间位置。

下面结合图8详述本发明上述实施例,如图8所示,在检测到位置确 定请求之后,确定第一控制对象的第一空间位置的多个候选空间位置(该候选空间位置的确定可以采用上述任意一种实施例中的确定方式),如图8所示的实施例中,确定的候选空间位置有些已经被占用,如图8中第一个合围圈中的h11、h12、h13和h14已经被占用,第二个合围圈中的h23已经被占用,按照上述的选取方案,可以选取第一个合围圈中未被占用的候选空间位置h15,并将h15确定为第二空间位置,游戏引擎生成携带有第二空间位置的信息的通知,将该通知发送至第二控制对象的人工控制单元,该人工控制单元自行将第二控制对象移动至该第二空间位置,以对第一控制对象执行攻击等操作。

图8中被涂黑的候选空间位置表示被占用的候选空间位置。

本发明上述实施例中,游戏应用的游戏引擎检测到空间位置请求可以包括:若游戏引擎接收到第二控制对象对第一控制对象的操作指令,则确定检测到空间位置请求;或者,在第一控制对象位于第三空间位置、且第一控制对象被多个位于第四空间位置的第二控制对象包围的情况下,若检测到第一控制对象移动至第一空间位置、且第一空间位置与第三空间位置的距离超过预设距离,则确定检测到空间位置请求。

可选地,在第一控制对象位于第三空间位置、且第一控制对象被多个位于第四空间位置的第二控制对象包围的情况下,方法还包括:在检测到第一控制对象移动至第一空间位置的情况下,若第一空间位置与第三空间位置的距离未超过预设距离,则基于第一空间位置和第三空间位置确定第一控制对象的移动向量;按照移动向量,将第二控制对象从第二空间位置平移至第五空间位置。也即,若第一控制对象的移动幅度不大,则基于第一控制对象的移动,平移第二控制对象,而无需重新生成一个空间位置请求,以节省资源。

在一个可选的实施例中,在启动游戏功能之后,当第二控制对象攻击第一控制对象时,生成操作指令,如攻击指令、围攻指令等,并生成空间位置请求,则游戏引擎可以检测到该空间位置请求;在一个可选的实施例 中,若检测到npc生成该操作指令,则确定检测到空间位置请求。

在另一个可选的实施例中,在启动游戏功能之后,第一控制对象位于第三空间位置、且第一控制对象被多个位于第四空间位置的第二控制对象包围,在第一控制对象处于上述的状态时,若游戏引擎检测到第一控制对象的位置移动至第一空间位置,且该次移动幅度很大,如第三控制位置移动的距离超出预设距离范围,则npc生成空间位置请求,以重新获取pc的空间位置。

下面结合图9详述本发明实施例,当第一控制对象位于第三空间位置,且有3个位于第四空间位置的第二控制对象包围着第一控制对象,若第一控制对象发生移动,且移动距离较远,则npc的ai生成空间位置请求,重新申请空间位置。

当npc攻击该目标时,首先从多个候选空间位置中申请一个合围点(即第二空间位置)作为该npc的站位点,并在合围点上记录当前状态,已经被其他npc锁定的合围点不能再被其他npc占用,如被涂黑的候选空间位置所示,剩余的npc只能从剩余的未被占用的合围点中选取。

合围点选取的优先级算法也可根据业务需要自行定义,一般来说遵循最短距离优先原则,也就是给怪物(即第二控制对象)分配一个距离目标较近的合围圈上离自己当前位置最近的合围点,如图中的第二空间位置。

由于合围目标不一定是静止不动的,当目标在不断移动时,整个“阵形”也会基于目标不断整体平移,也就是每个合围点绝对坐标会不断变化。因此npc申请到合围点以后,ai需要不断对合围点当前的坐标进行判定,如果发现自己和合围点偏离较远,就向新坐标发起移动。同时,如果目标一次性移动较原始坐标偏离较远(如图9所示的状态),导致合围的npc的相对位置发生较大改变,也可以一次性重置所有合围点,让npc重新发起申请。

如图10所示,通过本发明上述实施例生成的游戏场景(如图10中的 游戏界面)中若有4个第二控制对象(npc1、npc2、npc3和npc4)和一个第一控制对象(即目标对象m1),则四个第二控制对象对第一控制对象生成合围之势,与图1相比,四个npc的空间位置没有重叠。

通过本发明上述实施例,在不带物理碰撞的游戏中,怪物合围也可以模拟出有碰撞的效果,从而使怪物表现更为真实。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述控制对象的空间位置确定方法,如图11所示,该装置可以包括:

可选地,在本实施例中,上述控制对象的空间位置确定方法也可以应用于如图2所示的网络环境中。

如图11所示,该控制对象的空间位置确定装置包括如下:检测单元111、第一确定单元113和第二确定单元115。

其中,检测单元,用于游戏应用的游戏引擎检测到空间位置请求,其 中,空间位置请求用于请求根据游戏应用中的第一控制对象的第一空间位置确定第二控制对象的第二空间位置,游戏引擎为无物理碰撞引擎,如,游戏应用中的控制对象在空间位置上被允许重叠;

第一确定单元,用于游戏引擎根据第一控制对象的第一空间位置确定多个候选空间位置,其中,多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置不重叠;

第二确定单元,用于游戏引擎将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。

在确定第二空间位置之后,生成携带有第二空间位置的信息的通知,第二控制对象的ai(如人工智能控制单元)接收到该通知之后,将第二控制对象自行移动至第二空间位置。

该实施例中的装置可以安装在游戏应用的游戏引擎中,该游戏引擎可以位于该游戏应用对应的服务器上。

采用本发明实施例,不带物理碰撞条件的游戏引擎,在检测到空间位置请求之后,根据第一控制对象的第一空间位置确定多个候选空间位置,并将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。由于上述实施例中的多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置也不重叠,从该多个空间位置中选取一个未被占用的位置作为第二控制对象的第二空间位置,若第二控制对象为多个,多个第二控制对象的位置不会发生重叠。通过上述方案,无需使用研发成本高、运行效率低的带物理碰撞的游戏引擎,即可在不带物理碰撞的游戏引擎中对多个第一控制对象分配不重叠的空间位置,解决了现有技术中游戏引擎中多个物体在空间位置上不产生重叠的方案运行效率低的问题。

在上述实施例中的第一控制对象和第二控制对象可以为游戏角色,也可以为静态的游戏中的物体。上述实施例中的第二控制对象可以为人工智 能控制的对象,空间位置请求也是第二控制对象的人工智能控制单元生成的,上述方法的执行主体可以是游戏引擎中的合围管理器。

例如,第一控制对象可以为游戏玩家,第二控制对象可以为npc,该游戏玩家可以为用户在使用游戏客户端时通过输入操作指令而控制的游戏角色。

通过上述实施例,在没有物理碰撞的条件下,为多个npc分配游戏应用的空间中不同的空间位置,且各个npc的空间位置各不相同,从而可以使ai通过合围机制让npc的站位表现更为真实和生动。

根据本发明的上述实施例,第一确定单元可以包括:确定模块,用于在以第一空间位置为中心的空间区域内确定多个候选空间位置,其中,每个候选空间位置与第一空间位置的距离不超过预设阈值。

以第一空间位置为中心,以预设阈值为半径,确定一个圆形的空间区域,在该圆形的空间区域中随机设置多个候选空间位置,则每个候选空间位置与该第一空间位置的距离不超过预设阈值,且该多个候选空间位置包围该第一空间位置。

因为,在游戏应用中第二控制对象需对第一控制对象执行操作(如合围、攻击等操作),将候选空间位置确定在距离第一空间位置不超过预设距离的范围内,可以更好的实现游戏的合围或攻击功能。

在一个可选的实施例中,确定模块可以包括:设置子模块,用于在空间区域内,在以第一空间位置为中心的合围圈上设置多个候选空间位置。

具体地,合围圈为n个,其中,设置子模块包括:第一位置设置子模块,用于在n个合围圈中的每个合围圈上设置一组候选空间位置,其中,第i个合围圈上设置有第i组候选空间位置,n为自然数,i为小于等于n的自然数。

可以以第一空间位置为圆心设置n个合围圈,每个合围圈的半径不同,每个合围圈上设置一组候选空间位置,即,第i个合围圈上设置有第i组 候选空间位置,这样减少了候选空间位置设置的随机性,提高了处理器的性能;并且,每个合围圈上的候选空间位置距离一致,在选取第二空间位置时,可以一个合围圈一个合围圈的选取,如先选取第一个合围圈上的候选空间位置,若第一个合围圈上没有合适的位置,再选取第二个合围圈上的位置,以此类推。该方案与随机设置候选空间位置相比,设置时有规律、选取时也有规律,从而可以提高处理速度。

按照上述实施例设置候选空间位置时,第i组候选空间位置在第i个合围圈上均匀分布,每组候选空间位置的个数均不相同。

可选地,第i组候选空间位置在第i个合围圈上也可以不均匀分布,每组候选空间位置的个数也可以相同。

需要说明的是,本申请实施例中的合围圈仅是一个虚拟概念,可以按照半径距离直接设置候选空间位置,而不设置合围圈,也即在以第一控制对象为中心,按照不同的半径距离设置n组候选空间位置,每组候选空间位置距离第一控制对象的距离可以相同。

在另一种可选的实现方式中,设置子模块包括:第二位置设置子模块,用于按照第一控制对象和第二控制对象的属性信息设置下述至少之一:第i个合围圈与第一控制对象的距离、第i组候选空间位置的个数、以及第i组候选空间位置的分布方式。

在该可选的实施例中,可以按照第一控制对象和第二控制对象的属性确定合围圈的个数、每个合围圈与第一控制对象的距离、每组候选空间位置的个数、以及候选空间位置的分布方式(如均匀分布或不均匀分布)。

在设置候选空间位置时,多个候选空间位置中的各个候选空间位置与目标对象(即第一控制对象)所在的第一空间位置的连接互不重合,以使处于每个候选空间位置上的npc对象均可直接对目标对象执行操作,也即,每个候选空间位置均被设置为可直接对目标对象执行操作的位置。

上述实施例中确定第二空间位置时,可以按照预先定义的优先级选取 方式选取,如按照距离最短优先的选取方式、距离相邻的候选空间位置最远的选取方式等,该预先定义的优先级选取方式也可根据业务需要自行定义,一般来说可以遵循最短距离优先原则,也就是给npc(如怪物)分配一个距离目标对象较近的合围圈上离自己当前位置最近的合围点。

也即,第二确定单元包括的位置选取模块,用于将多个候选空间位置中一个距离第一空间位置最近、且未被占用的候选空间位置确定为第二控制对象的第二空间位置。

具体地,在确定第一空间位置之后,获取距离第一空间位置最近的合围圈,从当前获取的合围圈中选取未被占用的候选空间位置,若该当前获取的合围圈中的候选空间位置均被占用,则获取下一个距离最近的合围圈,以此类推,直至找到被占用的合围圈。

在本发明的上述实施例中,每个候选空间位置可以具有一个状态标志,该状态标志用于指示候选空间位置是否被占用,也即,可以通过状态标志确定对应的候选空间位置是否被占用。在将多个候选空间位置中一个距离第一空间位置最近、且未被占用的候选空间位置确定为第二控制对象的第二空间位置之后,通过状态修改单元将距离第一空间位置最近、且未被占用的候选空间位置的状态修改为被占用状态。

本发明上述实施例中,检测单元包括:第一检测模块,用于在接收到第二控制对象对第一控制对象的操作指令时,确定检测到空间位置请求;或者,第二检测模块,用于在第一控制对象位于第三空间位置、且第一控制对象被多个位于第四空间位置的第二控制对象包围的情况下,若检测到第一控制对象移动至第一空间位置、且第一空间位置与第三空间位置的距离超过预设距离,则确定检测到空间位置请求。

上述的两种为触发生成空间位置请求的触发条件。

可选地,第二检测模块还用于在检测到第一控制对象移动至第一空间位置的情况下,若第一空间位置与第三空间位置的距离未超过预设距离, 则基于第一空间位置和第三空间位置确定第一控制对象的移动向量;按照移动向量,将第二控制对象从第二空间位置平移至第五空间位置。

由于合围目标不一定是静止不动的,当目标在不断移动时,整个“阵形”也会基于目标不断整体平移,也就是每个合围点绝对坐标会不断变化。因此npc申请到合围点以后,ai需要不断对合围点当前的坐标进行判定,如果发现自己和合围点偏离较远,就向新坐标发起移动。同时,如果目标一次性移动较原始坐标偏离较远(如图8所示的状态),导致合围的npc的相对位置发生较大改变,也可以一次性重置所有合围点,让npc重新发起申请。

通过本发明上述实施例,在不带物理碰撞的游戏中,怪物合围也可以模拟出有碰撞的效果,从而使怪物表现更为真实。

本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。

实施例3

根据本发明实施例,还提供了一种用于实施上述控制对象的空间位置确定方法的服务器。

如图12所示,该服务器包括:一个或多个(图中仅示出一个)处理器1201、存储器1203、以及传输装置1205(如上述实施例中的发送装置),如图12所示,该终端还可以包括输入输出设备1207。

其中,存储器1203可用于存储软件程序以及模块,如本发明实施例中的控制对象的空间位置确定方法和装置对应的程序指令/模块,处理器1201通过运行存储在存储器1203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的控制对象的空间位置确定方法。存储器1203可包括高速随机存储器,还可以包括非易失性存储器,如一个 或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1203可进一步包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1203用于存储应用程序。

处理器1201可以通过传输装置1205调用存储器1203存储的应用程序,以执行下述步骤:

s1,游戏应用的游戏引擎检测到空间位置请求,其中,空间位置请求用于请求根据游戏应用中的第一控制对象的第一空间位置确定第二控制对象的第二空间位置,游戏引擎为无物理碰撞引擎,如,游戏应用中的控制对象在空间位置上被允许重叠;

s2,游戏引擎根据第一控制对象的第一空间位置确定多个候选空间位置,其中,多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置不重叠;

s3,游戏引擎将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。

处理器1201可以通过传输装置1205调用存储器1203存储的应用程序,以执行下述步骤:

在以第一空间位置为中心的空间区域内确定多个候选空间位置,其中, 每个候选空间位置与第一空间位置的距离不超过预设阈值。

采用本发明实施例,不带物理碰撞条件的游戏引擎,在检测到空间位置请求之后,根据第一控制对象的第一空间位置确定多个候选空间位置,并将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。由于上述实施例中的多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置也不重叠,从该多个空间位置中选取一个未被占用的位置作为第二控制对象的第二空间位置,若第二控制对象为多个,多个第二控制对象的位置不会发生重叠。通过上述方案,无需使用研发成本高、运行效率低的带物理碰撞的游戏引擎,即可在不带物理碰撞的游戏引擎中对多个第一控制对象分配不重叠的空间位置,解决了现有技术中游戏引擎中多个物体在空间位置上不产生重叠的方案运行效率低的问题。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

需要进一步说明的是,寄存区域为系统的内存和系统处理器中的寄存器。

本领域普通技术人员可以理解,图12所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图12其并不对上述电子装置的结构造成限定。例如,终端还可包括比图12中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图12所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储执行控制对象的空间位置确定方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于图2所示的网络中的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1,游戏应用的游戏引擎检测到空间位置请求,其中,空间位置请求用于请求根据游戏应用中的第一控制对象的第一空间位置确定第二控制对象的第二空间位置,游戏引擎为无物理碰撞引擎,如,游戏应用中的控制对象在空间位置上可重叠;

s2,游戏引擎根据第一控制对象的第一空间位置确定多个候选空间位置,其中,多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置不重叠;

s3,游戏引擎将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

在以第一空间位置为中心的空间区域内确定多个候选空间位置,其中,每个候选空间位置与第一空间位置的距离不超过预设阈值。

采用本发明实施例,不带物理碰撞条件的游戏引擎,在检测到空间位置请求之后,根据第一控制对象的第一空间位置确定多个候选空间位置,并将多个候选空间位置中的一个未被占用的候选空间位置确定为第二控制对象的第二空间位置。由于上述实施例中的多个候选空间位置包围第一空间位置,且多个候选空间位置彼此不重叠,多个候选空间位置与第一空间位置也不重叠,从该多个空间位置中选取一个未被占用的位置作为第二 控制对象的第二空间位置,若第二控制对象为多个,多个第二控制对象的位置不会发生重叠。通过上述方案,无需使用研发成本高、运行效率低的带物理碰撞的游戏引擎,即可在不带物理碰撞的游戏引擎中对多个第一控制对象分配不重叠的空间位置,解决了现有技术中游戏引擎中多个物体在空间位置上不产生重叠的方案运行效率低的问题。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

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

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦 合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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