虚拟对象信息的显示方法和装置、存储介质、电子装置与流程

文档序号:14660739发布日期:2018-06-12 17:45阅读:187来源:国知局
虚拟对象信息的显示方法和装置、存储介质、电子装置与流程

本发明涉及互联网领域,具体而言,涉及一种虚拟对象信息的显示方法和装置、存储介质、电子装置。



背景技术:

随着多媒体技术的发展和无线网络的普及,人们的娱乐活动变得越来越丰富,如通过手持式媒体设备联网玩游戏、通过电脑玩单机或者联网游戏,游戏类型多种多样,如弹幕射击游戏、冒险游戏、模拟游戏、角色扮演游戏、休闲棋牌游戏和其它游戏等。在大部分类型的游戏中,玩家可以通过所操控的角色与其它玩家所操控的角色进行游戏。如MOBA类游戏,MOBA是Multiplayer Online Battle Arena Games的缩写,中文译为多人在线战术竞技游戏,这一类游戏的玩法是:在战斗中一般需要获取装备(如游戏道具),玩家通常被分为两队,两队在分散的虚拟场景中互相竞争,每个玩家都通过其游戏界面控制所选的角色。

玩家在游戏的过程中,游戏中怪物受到致死伤害,或打开道具宝箱后掉落在场景内,会出现掉落物,也即玩家角色在其周围或上方经过时可以自动拾取的物品。相关技术中,实现掉落物的方法有如下两种:

其一是采用网格排列的方式:在屏幕上划分出矩形框大小的网格,然后根据物品宽度计算出所占网格数;

其二是用动画的方式实现,由美术制作好物品的掉落动画,然后在动画内插入固定的点,程序依次将物品放置到点上。

相关技术中的技术方案存在如下问题:

网格排列的方式会让掉落物名称排置的很工整,但由于这个方法完全没有考虑到掉落物的实际位置,同时也不符合真实世界的物理现象,所以给玩家一种很不真实的感觉,从而影响了用户体验;

动画的表现的方式富有张力,由于是人工打点,因此排列具有贴近实际情况,但是人工打点的数量毕竟是有限的,在掉落物较多的情况下,需要耗费开发工程师巨大的精力,为企业造成巨大的经济负担,且这种方案要求物品的名称必须是定长的,因此它不能很好的适应动态数据的变化。

针对相关技术中制作游戏道具的成本较高的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种虚拟对象信息的显示方法和装置、存储介质、电子装置,以至少解决相关技术中制作游戏道具的成本较高的技术问题。

根据本发明实施例的一个方面,提供了一种虚拟对象信息的显示方法,该方法包括:获取第一指令,其中,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;查找虚拟场景中的第二对象,其中,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;至少对第二对象进行移动,其中,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;在目标画面上显示用于表示第一对象和第二对象的信息,其中,目标画面是采集到的第一区域和第二区域的画面。

根据本发明实施例的另一方面,还提供了一种虚拟对象信息的显示装置,该装置包括:获取单元,用于获取第一指令,其中,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;查找单元,用于查找虚拟场景中的第二对象,其中,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;移动单元,用于至少对第二对象进行移动,其中,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;显示单元,用于在目标画面上显示用于表示第一对象和第二对象的信息,其中,目标画面是采集到的第一区域和第二区域的画面。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本发明实施例中,获取第一指令,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;查找虚拟场景中的第二对象,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;至少对第二对象进行移动,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;在目标画面上显示用于指示第一对象和第二对象的信息,目标画面是采集到的第一区域和第二区域的画面,由于整个处理过程通过软件算法的形式实现,可以解决相关技术中制作游戏道具的成本较高的技术问题,进而达到降低了游戏道具的制作成本的技术效果。

附图说明

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

图1是根据本发明实施例的虚拟对象信息的显示方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的虚拟对象信息的显示方法的流程图;

图3是根据本发明实施例的一种可选的游戏道具队列的示意图;

图4是根据本发明实施例的一种可选的游戏道具队列的示意图;

图5是根据本发明实施例的一种可选的游戏道具队列的示意图;

图6是根据本发明实施例的一种可选的游戏道具队列的示意图;

图7是根据本发明实施例的一种可选的游戏道具队列的示意图;

图8是根据本发明实施例的一种可选的游戏道具队列的示意图;

图9是根据本发明实施例的一种可选的虚拟对象信息的显示方法的流程图;

图10是根据本发明实施例的一种可选的目标画面的示意图;

图11是根据本发明实施例的一种可选的虚拟对象信息的显示装置的示意图;以及

图12是根据本发明实施例的一种终端的结构框图。

具体实施方式

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

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

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

MOBA:英文全称为Multiplayer Online Battle Arena,中文可译为多人在线战术竞技游戏。

ARPG,英文全称为Action Role Playing Game,游戏术语,意思是动作角色扮演类游戏,角色的动作(特别是攻击动作)与操作(如点击鼠标)相关的动作。

根据本发明实施例的一方面,提供了一种虚拟对象信息的显示方法的方法实施例。

可选地,在本实施例中,上述虚拟对象信息的显示方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的虚拟对象信息的显示方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的虚拟对象信息的显示方法也可以是由安装在其上的客户端来执行。

当本发明实施例的虚拟对象信息的显示方法由终端104来执行时,以虚拟对象为游戏中的道具为例:

步骤S11,玩家(如使用第一帐号的玩家、与使用第一帐号处于同一局游戏中的玩家、与使用第一帐号处于同一游戏服务区的玩家等)启动目标游戏的客户端,并进入目标游戏,如进入进行中的游戏、开启一局游戏、受邀进入一局游戏等,玩家或者游戏客户端触发游戏事件的发生。

步骤S12,在玩家所处的目标游戏发生游戏事件(此时会触发第一指令)的情况下,按照如下的方法生成包括游戏道具的画面。

步骤S121,获取目标游戏中的游戏事件(即获取第一指令),游戏事件用于指示待在目标游戏的游戏地图(也即虚拟场景)的第一区域上显示的第一道具(即第一对象),第一道具为虚拟场景中允许被拾取的虚拟对象;

步骤S122,查找目标游戏中的第二道具(也即第二对象),游戏地图中显示有第二道具的第二区域与第一区域相交;

步骤S123,至少对第二道具进行移动,游戏地图中用于显示移动后的第二道具的第三区域与第一区域之间不相交。

步骤S13,在游戏客户端上显示用于指示第一道具和第二道具的信息,如第一帐号所在的第一客户端、第二帐号所在的第二客户端。在第一客户端或第二客户端上显示的游戏画面是对游戏地图上包括第一区域和第二区域的部分进行采集得到的。第一帐号和第二帐号为游戏中处于同一地图区域的帐号,该地图区域内的帐号的视野包括上述的第一区域和第三区域。

上述步骤S11至步骤S13为包括本申请技术方案的一个完整实施流程,本申请的技术方案主要涉及其中的步骤S12,下面结合具体的实施例详述本申请的技术方案。

图2是根据本发明实施例的一种可选的虚拟对象信息的显示方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤S202,获取第一指令,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象。

上述虚拟场景为应用的虚拟场景,如目标游戏应用的虚拟场景,目标游戏包括但不局限于如下类型的游戏:弹幕射击游戏、冒险游戏、模拟游戏、角色扮演游戏、休闲棋牌游戏、MOBA类游戏和其它游戏。尤其适用于MOBA类游戏、ARPG类游戏。

上述第一指令为在目标游戏的某个游戏场景中发生的事件是触发的指令,如游戏过程中怪物受到致死伤害、道具宝箱被打开等会触发在游戏中散落游戏道具的事件。

上述的第一对象可为被指定有初始位置(即位于第一区域内)的道具(也即虚拟对象),目标游戏中的帐号(包括第一帐号)经过第一区域时,均可对其进行拾取。

步骤S204,查找虚拟场景中的第二对象,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交,也即第二区域与第一区域部分或全部地重合。

可以预先设置好一个数据集合,在数据集合中的元素是用于存储一个道具及其相关信息的数据结构,相关信息包括该道具的标识、道具的贴图、道具的位置等信息中的至少一个。第二对象即从数据集合中查找到的虚拟道具。

需要说明的是,若未查找到第二对象,也即不存在与第二对象所在的第一区域部分或全部重叠的第二对象,则直接将第一对象设置在第一区域,并进行显示即可。

步骤S206,至少对第二对象进行移动,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交。

第一对象为新出现的且未被在数据集合中进行排序的虚拟道具,当出现时需要将第一对象放入数据集合,并为其分配初始的位置(第一区域),具体是通过将第二对象(也即第二道具)“挤开”的形式实现,以使移动后的第二对象的第三区域与第一区域之间不相交。

步骤S208,在目标画面上显示用于表示第一对象和第二对象的信息,目标画面是采集到的第一区域和第二区域的画面。

在上述实施例中,在第二对象与第一对象部分或者完全重合的情况下,通过将第二对象“挤开”的形式来让第一对象独占第一区域,符合真实世界的物理现象,所以给玩家一种很真实的感觉,从而提高了用户体验;且整个过程可通过软件算法的形式实现,在掉落物较多的情况下,不需要耗费开发工程师的精力(包括为每个道具制作贴图、并为其在每个阶段制作相应的贴图,如初始时的贴图,位置发生变化时的贴图等),降低了企业的开发成本,且这种方案不要求物品的名称定长,因此它能很好的适应动态数据的变化。

通过上述步骤S202至步骤S208,获取第一指令,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;查找虚拟场景中的第二对象,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;至少对第二对象进行移动,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;在目标画面上显示用于指示第一对象和第二对象的信息,目标画面是采集到的第一区域和第二区域的画面,由于整个处理过程通过软件算法的形式实现,可以解决相关技术中制作游戏道具的成本较高的技术问题,进而达到降低了游戏道具的制作成本的技术效果。

本申请的技术方案提出了一套掉落物名称排序的方法实现对掉落物的处理,该算法具有快速,稳定,能处理大容量样本且不会卡顿的特点。它的算法核心是让精准排序和模拟计算同时存在,并在各自合适的时机起作用;前者保证了排序的结果达到预期效果,后者保证了排序结果的稳定和性能。下面结合图2所示的步骤进行详述:

在步骤S202提供的技术方案中,获取第一指令,包括但不局限于如下形式:

(1)目标游戏中的游戏帐号(包括第一帐号、第二帐号等)对游戏怪物造成致死伤害,终端的客户端会通过游戏逻辑察觉到该游戏事件;

(2)目标游戏中的游戏帐号打开道具宝箱后,终端的客户端会通过游戏逻辑察觉到该游戏事件;

(3)游戏中的游戏逻辑主动触发的(如某一帐号通关、触发某个游戏开关等)游戏事件。

在步骤S204提供的技术方案中,查找虚拟场景中的第二对象,其中,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交。

由于第一对象的第一区域的位置是确定的,故可依此去查找第二对象,下面以游戏中的二维场景为例进行说明(实际场景可以为三维或者更高维度的场景,本申请对此不做限定):

步骤S2041,确定第一区域在X轴和Y轴上的取值范围,如在X轴上的取值范围为[m1,m2],在Y轴上的取值范围为[n1,n2];

步骤S2042,对数据集合中的道具所在区域进行逐个排查,判断该区域上是否存在X坐标落在m1和m2之间、且Y轴坐标落在n1和n2之间的点,若存在则确认该区域上的虚拟道具为第二对象,都则确认该区域上的虚拟道具不为第二对象。

需要说明的是,在地图上,可以预先设置好道具的最大宽度,每一个最大宽度可视为一个道具队列,队列的划分形式包括但不局限于图3和图4示出的两种,如图3所示,可以平行于X轴的方向作为队列的方向(可选地,亦可以平行于Y轴的方向作为队列的方向);如图4所示,也可以确定某条中轴线(该中轴线的方向可以是任意的,图4中以平行于Y轴的线为例),道具队列所在条形区域经过该中轴线时,中轴线与其边缘(相对于中轴线的两端)形成固定角度的夹角。

在步骤S206提供的技术方案中,至少对第二对象进行移动,其中,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交。

步骤S2062,在道具队列所在轴线方向上进行移动。

(1)移动方式一

可选地,在“至少对第二对象进行移动”时,在以下情形时,可以仅对第二对象进行移动:

情形一:如图5所示,在第一对象的第一方向上仅有第二对象(位于第二区域),而无其他道具,此时,可仅对第二对象进行移动;

情形二:在第一对象的第一方向上有多个第三对象(其中包括第二对象),但是受限于迭代深度,仅对与第一对象相邻的一层道具进行移动,也即仅对第二对象进行移动。

需要说明的是,第一对象的第一方向是指沿第一对象所在道具队列的方向,如图3所示,第一方向可以沿X轴的正向或负向的方向,若道具队列是平行于Y轴排列,那么第一方向可以是沿Y轴的正向或负向的方向;如图4所示,道具队列的方向可以和中轴线保持一定的角度,本申请对此不做限定。本申请后续实施例中以第一方向为指向X轴正向的方向为例进行详述。

(2)移动方式二

可选地,在“至少对第二对象进行移动”时,可以根据迭代深度对相邻的多层道具进行移动,如将在第一对象的第一方向上相邻的多个第三对象(多个第三对象的数量可通过迭代深度进行配置,如迭代深度为5,那么“多个第三对象”的数量为5)沿第一方向移动,其中,多个第三对象包括第二对象。

若上述的“迭代深度”配置的层数多于第一对象的第一方向上第三对象的数量,或者没有进行“迭代深度”的配置,那么“将在第一对象的第一方向上相邻的多个第三对象沿第一方向移动”可以是指,将位于第一对象的第一方向上的所有第三对象沿第一方向移动(如图5所示,其中,虚框中的每个方框可表示一个道具所在区域)。

(3)移动方式三

对于上述的方式一或方式二,在沿X轴正向移动道具之后,若该方向上的道具超出了终端屏幕的最大显示范围(也即目标画面的显示范围),也即在虚拟场景中用于展示移动后的第四对象的区域超出目标画面的显示范围的情况下,此时“至少对第二对象进行移动”还可进一步包括:将第一对象和沿第一方向移动后的多个第三对象沿第一对象的第二方向移动,第四对象(也即第四道具)为移动后的多个第三对象中在第一方向上距离第一对象最远的虚拟对象,第二方向与第一方向相反(如图6所示)。

需要说明的是,在虚拟场景中用于展示移动后的第四对象的区域超出目标画面的显示范围的情况下,在第一对象的第二方向上存在道具的情况下,将第一对象、沿第一方向移动后的多个第三对象以及目标对象沿第一对象的第二方向移动,第四对象为移动后的多个第三对象中在第一方向上距离第一对象最远的虚拟对象,目标对象为位于第二方向上的虚拟对象、且包括与第一对象相邻的虚拟对象,第二方向与第一方向的方向不同,如第一方向和第二方向为相反的方向,第一方向和第二方向与中轴线之间的夹角度数相同。

步骤S2064,在道具队列所在轴线方向上进行移动。

(1)移动方式一,沿第三方向移动

需要说明的是,在“插入”新的第一对象时,若所在道具队列还存在足够空间,那么第一对象是通过向第一方向“挤”(可能还包括向第二方向“挤”)来占据显示区域的;那么若所在道具队列不存在足够空间,那么第一对象则需要通过向别的方向“挤压”来获得显示空间。

可选地,在面临上述情形时,第一对象可向第三方向上的相邻道具队列进行“挤压”来获得显示空间,“至少对第二对象进行移动”可包括:在第一对象的第一方向和第二方向上均不存在第三区域的情况下,将多个第三对象和目标对象沿第三方向移动,其中,第三区域为未用于显示第三对象或目标对象、且在第一方向或第二方向上的长度不短于第一区域在第一方向或第二方向上的长度的区域(也即两个道具所占据区域之间的长度,或称为第三区域的长度是否满足第一区域所需长度),目标对象为在第二方向上的虚拟对象、且包括与第一对象在第二方向上相邻的虚拟对象,第三方向与第一方向或第二方向垂直。

如图7所示,任意两个实线方框(即第三对象和目标对象所在的区域)之间的长度均不满足第一对象所需的第一区域(图7中用虚线框示出)的长度要求,因此无法将第一对象挤入第一对象队列。因此,可以按照如图8所示的方式将第一对象队列向第三方向移动,如移动到下一列,图7中用虚线框表示移动前所在的位置,实线框表示移动后所在的位置。

可选地,在面临上述情形时,第一对象可向第三方向上的所有道具队列进行“挤压”来获得显示空间,此时,“至少对第二对象进行移动”可包括:在第一对象的第一方向和第二方向上均不存在第三区域的情况下,将多个第三对象和目标对象所在的第一对象队列和位于第一对象队列的第三方向上的第二对象队列沿第三方向移动,其中,第三区域为未用于显示第三对象或目标对象、且在第一方向或第二方向上的长度不短于第一区域在第一方向或第二方向上的长度的区域,目标对象为在第二方向上的虚拟对象、且包括与第一对象在第二方向上相邻的虚拟对象,第三方向与第一方向或第二方向垂直(如图8中沿Y轴负向的方向)。

(2)移动方式二,沿第四方向移动

可选地,在按照方式一中所示的方式将第一对象队列(可能还包括第二对象队列)向第三方向挤压之后,第一对象队列或第二对象队列可能会超出目标画面的显示范围,此时需要按照与上述实施例中的类似方式对整个画面的道具队列进行调整,此时,“至少对第二对象进行移动”可包括:在第一对象队列和第二对象队列中存在目标对象队列的情况下,将第一对象、沿第三方向移动后的第一对象队列和第二对象队列沿第四方向移动,其中,目标对象队列为向第三方向移动后的第一对象队列和第二对象队列中超出目标画面的显示范围的队列,沿第四方向(垂直于第三方向,如图8中沿Y轴正向的方向)移动后的目标对象队列在目标画面的显示范围内。

在步骤S208提供的技术方案中,在第一客户端的目标画面上显示用于指示第一对象和第二对象的信息,其中,目标画面是采集到的第一区域和第二区域的画面。

可选地,在第一客户端的目标画面上显示用于指示第一对象和第二对象的信息包括但不局限于如下方式:在第一客户端的目标画面上显示第一对象的贴图和第二对象的贴图;在第一客户端的目标画面上显示第一对象的标识和第二对象的标识(如道具编号、道具名称等)。

可选地,可以采取分块的排序,将掉落物分组(如图3和图4所示,可以将多个道具队列作为一个区域),并散列的分布到区域中,在进行移动时,可以对整个区域进行移动,在区域里再进行细分,换取更高的散列排序性能。

可选地,本申请的上述技术方案可以应用于MMORPG,ARPG等类型的游戏品类中,解决掉落物品由于堆叠在一起引起玩家体验不佳的问题。它能够迅速的将掉落物的名称按照物理方式排列开,并可视的展现这一个过程,让玩家体验到真实的物品掉落,同时又不会引起物品抖动的问题。

在本申请的上述实施例中,可开放精确排序的迭代深度、启动周期(如是游戏事件之后立马启动本申请的方法还是等待若干时长后,如等待所有掉落物掉落完毕之后)以及算法的发生频率(如相隔图像帧的数量)三个参数中的一个或多个,供策划调整体验效果和性能效果的平衡。

作为一种可选的实施例,下面以在手机等移动终端上运行的游戏为例进行详述。

可选地,硬件环境可以为内存在1G以上、操作系统为Android或IOS的设备。

可将本申请的方法以软件功能形式嵌入到游戏中,游戏应用可运行在上述的硬件环境中,算法本身是一个永远在更新的逻辑闭环。该软件功能的流程如图9所示

步骤S901,输入数据是一个初始化的掉落物排序状态(上次已经排好的,或者空集)。

步骤S902,会检测是否有新的掉落物(也即第一对象或第一道具)加入,监测的频率可以根据上述的“发生频率”确定,如每帧都进行检查;如果有则执行步骤S903,否则执行步骤S906。

步骤S903,若有则立即进入分支1,进行精准散列排序,考虑到用户体验,这里会先检测原集合中与新物品重叠的物品,并将其隐藏,待排好再放出。

步骤S904,重置迭代深度,开始精确散列排序(参考前述的步骤S202至步骤S208),已经排好的名称置为未显示。

步骤S905,排列完毕或达到最大深度时,显示所有掉落物(道具)的名称。

步骤S906,若无则进入分支2,每帧记录摄像机的移动,并让已经排好序的掉落物名称跟随它移动,这样就可以避免一直排序带来的物品闪烁问题。

步骤S907,判断与上一次排序之间的时间间隔是否达到预设的强制排列时间(启动周期),若是则执行步骤S903,否则继续执行步骤S906。

由于随着角色的移动或者镜头的转动,物品与相机镜头的角度和距离会发生变化,真实物理下是会再次发生重叠的,此时应再排,但考虑到MMORPG和ARPG游戏中,屏幕转动和人物移动非常频繁,因此在此为了避免抖动,算法设定了一个时间阈值,达到该时间则强制重新散列排序。

由于每一次排好序,都返回了算法的初始状态,因此算法是一个合理的,稳定有效的闭环。这里需要说明的一点是,为了应对数据量非常大的样本,算法可设置一个最大迭代深度,超过此深度,将不再向外散列,以保证游戏过程的性能。

在上述的步骤S904中,精确散列排序的方法可以按照如下方式实现:

步骤S9041,获取未排列好的掉落物名称集合。

步骤S9042,以X轴或Y轴增大的方向排序集合。

步骤S9043,遍历上述集合,判断新加入的第一道具(也即第一对象)Am是否与相邻的第二道具(也即第二对象)Am-1完全或部分地重叠。

步骤S9044,若第一道具Am是与相邻的第二道具Am-1重叠,则判断Am-1的X轴坐标、Am-1的宽度、Am的宽度之和是否小于屏幕宽度,若是则只需步骤S9045,否则执行步骤S9046。

步骤S9045,将Am接在Am-1后面,遍历指针移动到m+1。

步骤S9046,判断将A1、A2……Am-1向X轴负方向移动满足Am的宽度的距离后是否还在屏幕内,若是则执行步骤S9045,否则执行步骤S9047。

步骤S9047,将Am移动到本行的首个名称Ax应该在的位置下方。

步骤S9048,判断Am是否超出屏幕底部,若是则执行步骤S9049,否则回到步骤S9042。

步骤S9049,将Ax、Ax+1……Am上移,遍历指针回溯到Ax。最终得到的目标画面(或称为游戏画面)如图10所示。

利用本申请的上述技术方案,区别于网格排序,该算法是把物品名从后往前,从下往上“挤”,并保证不多重遍历集合,只把遍历指针回溯到冲突可能发生的位置。因此它可以以最快的速度排好集合内的所有名称,实测50个名称可以在0.2秒内全部散列排完。

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

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

根据本发明实施例的另一个方面,还提供了一种用于实施上述虚拟对象信息的显示方法的虚拟对象信息的显示装置。图11是根据本发明实施例的一种可选的虚拟对象信息的显示装置的示意图,如图11所示,该装置可以包括:获取单元1101、查找单元1103、移动单元1105以及显示单元1107。

获取单元1101,用于获取第一指令,其中,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象。

上述虚拟场景为应用的虚拟场景,如目标游戏应用的虚拟场景,目标游戏包括但不局限于如下类型的游戏:弹幕射击游戏、冒险游戏、模拟游戏、角色扮演游戏、休闲棋牌游戏、MOBA类游戏和其它游戏。尤其适用于MOBA类游戏、ARPG类游戏。

上述第一指令为在目标游戏的某个游戏场景中发生的事件是触发的指令,如游戏过程中怪物受到致死伤害、道具宝箱被打开等会触发在游戏中散落游戏道具的事件。

上述的第一对象可为被指定有初始位置(即位于第一区域内)的道具(也即虚拟对象),目标游戏中的帐号(包括第一帐号)经过第一区域时,均可对其进行拾取。

查找单元1103,用于查找虚拟场景中的第二对象,其中,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交。

可以预先设置好一个数据集合,在数据集合中的元素是用于存储一个道具及其相关信息的数据结构,相关信息包括该道具的标识、道具的贴图、道具的位置等信息中的至少一个。第二对象即从数据集合中查找到的道具。

需要说明的是,若未查找到第二对象,也即不存在与第二对象所在的第一区域部分或全部重叠的第二对象,则直接将第一对象设置在第一区域,并进行显示即可。

移动单元1105,用于至少对第二对象进行移动,其中,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交。

第一对象为新出现的且未被在数据集合中进行排序的道具,当出现时需要将第一对象放入数据集合,并为其分配初始的位置(第一区域),具体是通过将第二对象“挤开”的形式实现,以使移动后的第二对象的第三区域与第一区域之间不相交。

显示单元1107,用于在第一客户端的目标画面上显示用于指示第一对象和第二对象的信息,其中,目标画面是采集到的第一区域和第二区域的画面。

在上述实施例中,在第二对象与第一对象部分或者完全重合的情况下,通过将第二对象“挤开”的形式来让第一对象独占第一区域,符合真实世界的物理现象,所以给玩家一种很真实的感觉,从而提高了用户体验;且整个过程可通过软件算法的形式实现,在掉落物较多的情况下,不需要耗费开发工程师的精力(包括为每个道具制作贴图、并为其在每个阶段制作相应的贴图,如初始时的贴图,位置发生变化时的贴图等),降低了企业的开发成本,且这种方案不要求物品的名称定长,因此它能很好的适应动态数据的变化。

需要说明的是,该实施例中的获取单元1101可以用于执行本申请实施例中的步骤S202,该实施例中的查找单元1103可以用于执行本申请实施例中的步骤S204,该实施例中的移动单元1105可以用于执行本申请实施例中的步骤S206,该实施例中的显示单元1107可以用于执行本申请实施例中的步骤S208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,获取第一指令,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;查找虚拟场景中的第二对象,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;至少对第二对象进行移动,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;在目标画面上显示用于指示第一对象和第二对象的信息,目标画面是采集到的第一区域和第二区域的画面,由于整个处理过程通过软件算法的形式实现,可以解决相关技术中制作游戏道具的成本较高的技术问题,进而达到降低了游戏道具的制作成本的技术效果。

上述的移动单元可包括:第一移动模块,用于将在第一对象的第一方向上相邻的多个第三对象沿第一方向移动,其中,多个第三对象包括第二对象。

可选地,第一移动模块还可用于将位于第一对象的第一方向上的所有第三对象沿第一方向移动。

上述的移动单元还可包括:第二移动模块,用于在虚拟场景中用于展示移动后的第四对象的区域超出目标画面的显示范围的情况下,将第一对象和沿第一方向移动后的多个第三对象沿第一对象的第二方向移动,其中,第四对象为移动后的多个第三对象中在第一方向上距离第一对象最远的虚拟对象,第二方向与第一方向相反。

可选地,上述的移动单元还可包括:第三移动模块,用于在虚拟场景中用于展示移动后的第四对象的区域超出目标画面的显示范围的情况下,将第一对象、沿第一方向移动后的多个第三对象以及目标对象沿第一对象的第二方向移动,其中,第四对象为移动后的多个第三对象中在第一方向上距离第一对象最远的虚拟对象,目标对象为位于第二方向上的虚拟对象、且包括与第一对象相邻的虚拟对象,第二方向与第一方向的方向不同。

可选地,上述的移动单元还可包括:第四移动模块,用于在第一对象的第一方向和第二方向上均不存在第三区域的情况下,将多个第三对象和目标对象沿第三方向移动,其中,第三区域为未用于显示第三对象或目标对象、且在第一方向或第二方向上的长度不短于第一区域在第一方向或第二方向上的长度的区域,目标对象为在第二方向上的虚拟对象、且包括与第一对象在第二方向上相邻的虚拟对象,第三方向与第一方向或第二方向垂直。

可选地,第四移动模块还可用于在第一对象的第一方向和第二方向上均不存在第三区域的情况下,将多个第三对象和目标对象所在的第一对象队列和位于第一对象队列的第三方向上的第二对象队列沿第三方向移动,其中,第三区域为未用于显示第三对象或目标对象、且在第一方向或第二方向上的长度不短于第一区域在第一方向或第二方向上的长度的区域,目标对象为在第二方向上的虚拟对象、且包括与第一对象在第二方向上相邻的虚拟对象,第三方向与第一方向或第二方向垂直。

可选地,上述的移动单元还可包括:第五移动模块,用于在第一对象队列和第二对象队列中存在目标对象队列的情况下,将第一对象、沿第三方向移动后的第一对象队列和第二对象队列沿第四方向移动,其中,目标对象队列为向第三方向移动后的第一对象队列和第二对象队列中超出目标画面的显示范围的队列,沿第四方向移动后的目标对象队列在目标画面的显示范围内。

可选地,显示单元还可用于在目标画面上显示第一对象的贴图和第二对象的贴图;在第一客户端的目标画面上显示第一对象的标识和第二对象的标识。

本申请的技术方案提出了一套掉落物名称排序的方法实现对掉落物的处理,该算法具有快速,稳定,能处理大容量样本且不会卡顿的特点。它的算法核心是让精准排序和模拟计算同时存在,并在各自合适的时机起作用;前者保证了排序的结果达到预期效果,后者保证了排序结果的稳定和性能。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例的另一个方面,还提供了一种用于实施上述虚拟对象信息的显示方法的服务器或终端。

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

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

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

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

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

获取第一指令,其中,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;

查找虚拟场景中的第二对象,其中,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;

至少对第二对象进行移动,其中,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;

在目标画面上显示用于指示第一对象和第二对象的信息,其中,目标画面是采集到的第一区域和第二区域的画面。

处理器1201还用于执行下述步骤:

在目标画面上显示第一对象的贴图和第二对象的贴图;

在目标画面上显示第一对象的标识和第二对象的标识。

采用本发明实施例,获取第一指令,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;查找虚拟场景中的第二对象,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;至少对第二对象进行移动,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;在目标画面上显示用于指示第一对象和第二对象的信息,目标画面是采集到的第一区域和第二区域的画面,由于整个处理过程通过软件算法的形式实现,可以解决相关技术中制作游戏道具的成本较高的技术问题,进而达到降低了游戏道具的制作成本的技术效果。

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

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

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

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行虚拟对象信息的显示方法的程序代码。

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

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

S21,获取第一指令,其中,第一指令用于指示待在虚拟场景的第一区域上展示的第一对象,第一对象为虚拟场景中允许被拾取的虚拟对象;

S22,查找虚拟场景中的第二对象,其中,第二对象是在虚拟场景中的第二区域展示的虚拟对象,第二区域与第一区域相交;

S23,至少对第二对象进行移动,其中,移动后的第二对象在虚拟场景中的第三区域展示,第三区域与第一区域不相交;

S24,在目标画面上显示用于指示第一对象和第二对象的信息,其中,目标画面是采集到的第一区域和第二区域的画面。

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

S31,在目标画面上显示第一对象的贴图和第二对象的贴图;

S32,在目标画面上显示第一对象的标识和第二对象的标识。

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

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

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

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

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

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

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

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

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

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