更新方法及装置与流程

文档序号:26139037发布日期:2021-08-03 14:22阅读:98来源:国知局
更新方法及装置与流程

本申请涉及计算机技术领域,特别涉及更新方法及装置。



背景技术:

随着互联网技术的发展,游戏成为了用户不可分割的一部分,并且游戏服务方为了能够向玩家提供更加优质的游戏体验,不断的对游戏各方面的性能进行开发,以实现向玩家提供游玩体验更佳的游戏。而ui作为游戏中不可缺少的一部分,是连接游戏和玩家的桥梁,因此ui的展示效果以及相关的更新处理是游戏是否能够吸引玩家的重要因素;现有技术中,在对ui控件的显示状态进行更新时通常采用预先配置好ui控件的各种变化状态,当游戏画面发生变化时,根据预先配置的数据进行ui控件的更新,这种方法虽然可以有效的保证ui控件状态变化后快速的完成更新,但是由于预先配置ui控件的各种变化状态的消耗成本较高,因此亟需一种有效的方案以解决上述问题。



技术实现要素:

有鉴于此,本申请实施例提供了一种更新方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了一种更新装置,一种计算设备,以及一种计算机可读存储介质。

根据本申请实施例的第一方面,提供了一种更新方法,包括:

获取目标游戏中游戏角色的状态信息;

根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段;

按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定由属性值变化为目标属性值的目标数据字段;

确定所述目标数据字段对应的显示元素,根据所述目标属性值对所述显示元素进行更新并展示。

可选地,所述获取目标游戏中游戏角色的状态信息步骤执行之前,还包括:

获取所述目标游戏中包含的初始事件类型,以及所述目标游戏的游戏机制;

根据所述游戏机制确定驱动所述目标游戏中的初始显示元素变化的初始数据字段;

基于所述游戏机制建立所述初始事件类型与所述初始数据字段的关联关系。

可选地,所述初始显示元素通过如下方式创建:

获取所述目标游戏的显示数据,根据所述显示数据确定显示元素数据;

基于所述显示元素数据调用元素生成接口,并通过所述元素生成接口创建初始显示元素代码;

根据所述初始显示元素代码创建所述初始显示元素。

可选地,所述根据所述状态信息确定所述游戏角色触发的事件类型,包括:

对所述状态信息进行解析,获得所述游戏角色的状态字段;

根据所述状态字段确定所述游戏角色触发的目标事件,并确定所述目标事件所属的所述事件类型。

可选地,所述读取所述事件类型关联的数据字段,包括:

确定所述事件类型对应的字段标签,并基于所述字段标签读取所述目标游戏的候选数据字段;

根据读取结果确定记载所述字段标签的关联数据字段,并作为所述事件类型关联的所述数据字段。

可选地,所述按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定由属性值变化为目标属性值的目标数据字段,包括:

检测所述状态信息的持续时间是否大于预设时间阈值;

若是,按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定所述数据字段的上一周期属性值以及当前周期属性值;

选择所述上一周期属性值与所述当前周期属性值不一致的数据字段作为所述目标数据字段,所述目标数据字段的当前周期属性值为所述目标属性值。

可选地,若所述检测所述状态信息的持续时间是否大于预设时间阈值的检测结果为否,则执行如下步骤:

按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定所述数据字段的初始属性值以及当前属性值;

选择所述初始属性值与所述当前属性值不一致的数据字段作为所述目标数据字段,所述目标数据字段的当前属性值为所述目标属性值。

可选地,所述确定所述目标数据字段对应的显示元素,根据所述目标属性值对所述显示元素进行更新并展示,包括:

确定所述目标数据字段驱动的显示代码,并根据所述显示代码确定所述显示元素;

根据所述目标属性值对所述显示元素进行更新获得目标显示元素,并展示所述目标显示元素。

可选地,所述展示所述目标显示元素,包括:

获取承载所述显示元素的游戏界面;

根据所述目标显示元素对所述游戏界面进行更新,并通过更新后的游戏界面展示所述目标显示元素。

根据本申请实施例的第二方面,提供了一种更新装置,包括:

获取模块,被配置为获取目标游戏中游戏角色的状态信息;

读取模块,被配置为根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段;

确定模块,被配置为按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定由属性值变化为目标属性值的目标数据字段;

展示模块,被配置为确定所述目标数据字段对应的显示元素,根据所述目标属性值对所述显示元素进行更新并展示。

根据本申请实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述更新方法的步骤。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述更新方法的步骤。

本申请提供的更新方法,在获取到目标游戏中游戏角色的状态信息后,将根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段,之后按照所述检测规则对所述数据字段的属性值进行检测,根据检测结果确定属性值发生变化的目标数据字段;最后确定所述目标数据字段对应的显示元素,并根据变化后的目标数据字段的目标属性值对所述显示元素进行更新,实现了通过数据驱动的方式提高显示元素更新的效率,同时不需要预先配置显示元素的各个状态的变化数据,进一步节省了显示元素的更新所消耗的计算资源。

附图说明

图1是本申请一实施例提供的一种更新方法的流程图;

图2是本申请一实施例提供的一种显示元素更新的示意图;

图3是本申请一实施例提供的另一种显示元素更新的示意图;

图4是本申请一实施例提供的一种应用于游戏场景中的更新方法的处理流程图;

图5是本申请一实施例提供的一种更新装置的结构示意图;

图6是本申请一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

ui:(userinterface,用户界面)是指对软件的人机交互、操作逻辑、界面美观的整体设计。ui设计分为实体ui和虚拟ui,互联网常用的ui设计是虚拟ui,ui即userinterface(用户界面)的简称。

rpg(role-playinggame):角色扮演游戏,简称为rpg,是游戏类型的一种。在游戏中,玩家负责扮演这个角色在一个写实或虚构世界中活动。

moba(multiplayeronlinebattlearena):多人在线战术竞技游戏,在战斗中一般需要购买装备,玩家通常被分为两队,两队在分散的游戏地图中互相竞争,每个玩家都通过一个rts风格的界面控制所选的角色。

fps(firstpersonalshootinggame):第一人称视角射击游戏,是以玩家的主观视角来进行射击游戏。

ngui:是严格遵循kiss原则并用c#编写的unity插件,提供强大的ui系统和事件通知框架。

实际应用中,在游戏的开发中,ui的开发工作非常复杂,并且重复性工作较多,例如ui拼接,数据对接,动画展示,一旦在游戏的开发过程中有涉及到ui变化的需求发生时,所有的流程都需要进行修改,这个过程不仅需要较大的工作量对ui进行逐个更新,同时为了避免造成游戏界面显示混乱,还需要不断的对游戏进行测试才能够完成整个变化处理过程,因此减少ui工作的工作量,是亟需解决的问题。

本申请提供的更新方法,在获取到目标游戏中游戏角色的状态信息后,将根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段,之后按照所述检测规则对所述数据字段的属性值进行检测,根据检测结果确定属性值发生变化的目标数据字段;最后确定所述目标数据字段对应的显示元素,并根据变化后的目标数据字段的目标属性值对所述显示元素进行更新,实现了通过数据驱动的方式提高显示元素更新的效率,同时不需要预先配置显示元素的各个状态的变化数据,进一步节省了显示元素的更新所消耗的计算资源。

在本申请中,提供了一种更新方法。本申请同时涉及一种更新装置、一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本申请一实施例提供的一种更新方法的流程图,具体包括以下步骤:

步骤s102,获取目标游戏中游戏角色的状态信息。

具体的,所述目标游戏具体是指具有显示元素更新机制的游戏,即在游戏中的游戏角色进行某种操作或者动作时,可以使得向玩家展示的游戏界面中的ui元素发生变化,如金币消耗,血量增加/减少,技能冷却/恢复等等;实际应用中,所述目标游戏包括但不限于rpg、moba、fps等游戏,还可以是act(actiongame,动作游戏)、avg(adventuregame,冒险游戏)、tps(thirdpersonalshootinggame,第三人称射击类游戏)等游戏,本实施例在此不作任何限定。

基于此,所述显示元素具体是指所述目标游戏中会因为玩家控制游戏角色的操作而发生变化的ui元素,如游戏中的血条,技能栏,背包栏等等;相应的,所述游戏角色即为目标游戏中被玩家所控制的角色;而所述状态信息具体是指所述游戏角色在所述目标游戏中的状态相关的信息,所述状态信息包括但不限于行动状态,动作状态,恢复状态,冻结状态,操作状态等等,其中,行动状态是指游戏角色移动时对应的状态,动作状态是指游戏角色在按照游戏机制进行操作时对应的状态,恢复状态是指游戏角色在按照游戏机制进行恢复时对应的状态,冻结状态是指游戏角色按照游戏机制不能够进行操作时对应的状态。

具体实施时,由于所述游戏角色在所述目标游戏中的任意操作都是由玩家控制的,因此游戏角色在游戏中所表现的不同状态都会与玩家的操作相同,同时由于游戏机制设定的原因,不同状态下的游戏角色将向用户展示不同的界面,并且玩家的不同控制指令将会造成游戏界面中ui元素发生不同的变化,比如在moba类的游戏中,玩家控制游戏角色吃血量药剂时,会驱动游戏中游戏角色的血条显示发生变化,而此时游戏角色即处于所述目标游戏中的恢复状态;又比如在rpg类的游戏中,玩家控制游戏角色在商城中购买商品时,会驱动游戏中游戏角色持有的金币数量发生变换,而此时游戏角色即处于所述目标游戏中的操作状态。

因此,游戏中向玩家展示的游戏界面中包含的显示元素将根据游戏角色在游戏中的不同状态发生变化,而为了能够快速向玩家展示游戏角色当前状态对应的显示元素,本申请将采用数据驱动的方式完成显示元素的更新,同时为了能够节省ui更新时的消耗资源,将根据游戏角色的状态确定游戏角色触发的事件类型,通过只对事件类型关联的数据字段的属性值进行检测,进一步节省了计算资源的消耗,从而实现可以快速的向玩家展示相关的更新后的显示元素。

而在进行显示元素的更新之前,由于不同的目标游戏具有不同的游戏机制,而不同的游戏机制决定着不同的显示元素的更新,因此为了能够降低更新显示元素的计算资源的消耗,可以建立事件类型和驱动显示元素更新的数据字段的关联关系,从而实现只对游戏角色触发的事件关联的数据字段的显示元素进行更新,本实施例中,具体实现方式如下所述:

获取所述目标游戏中包含的初始事件类型,以及所述目标游戏的游戏机制;

根据所述游戏机制确定驱动所述目标游戏中的初始显示元素变化的初始数据字段;

基于所述游戏机制建立所述初始事件类型与所述初始数据字段的关联关系。

具体的,所述初始事件类型具体是指所述目标游戏中可以发生的游戏事件所属的类型,如游戏角色打斗引起血量变化的事件,吃血药引起血量变化的事件,游戏角色属性增长/升级引起血量变化的事件,都属于血量变化事件类型;再比如游戏角色释放技能引起蓝量变化的事件,吃蓝药引起蓝量变化的事件,游戏角色属性增长/升级引起蓝量变化的事件,都属于蓝量变化事件类型;其中,血量是指游戏角色是否存活的属性,蓝量是指游戏角色是否能够释放技能的属性。

需要说明的是,不同游戏中包含的初始事件类型不同,如在养成类游戏中,可能包含金币变化事件类型,消耗品变化事件类型,而不一定存在血量变化事件类型;因此不同的目标游戏将具有不同的初始事件类型,所述目标游戏具体包含的初始事件类型根据不同的目标游戏决定,本实施例在此不作任何限定。

进一步的,所述游戏机制具体是指目标游戏在运行的过程中,玩家所应该遵从的游戏规则、游玩方式相关的机制,所述游戏机制是目标游戏的核心策略,不仅推动着目标游戏的剧情发展,还控制着游戏中相关内容的触发和处理;即所述游戏机制也会影响目标游戏中显示元素是否发生变化;相应的,所述初始显示元素具体是指所述目标游戏中所有能够发生变化的显示元素,所述初始数据字段具体是指确定各个显示元素进行更新的数据字段,如hp数据字段可以驱动血条ui发生变化,mp数据字段可以驱动蓝条ui发生变化。

基于此,为了能够通过数据快速的驱动显示元素进行更新,将预先建立事件类型、数据字段和显示元素之间的关联关系,从而实现在减少计算机资源消耗的情况下,提高显示元素的更新效率;即首先获取目标游戏中包含的初始事件类型,同时获取所述目标游戏的游戏机制,之后根据所述游戏机制确定驱动所述目标游戏中的初始显示元素变化的初始数据字段,也就是说,此时需要确定能够驱动目标游戏中的各种显示元素发生变化的初始数据字段,最后基于所述游戏机制建立所述初始事件类型与所述初始数据字段的关联关系即可,实现在后续进行显示元素更新的过程中,可以根据该关联关系快速的确定目标游戏中游戏角色触发的事件类型,以通过轮询的方式对事件类型关联的数据字段进行检测,从而根据数据字段的属性值变化情况更新显示元素。

更进一步的,由于所述初始显示元素是可能向玩家展示的显示元素,因此各个初始显示元素需要预先根据游戏需求进行创建,本实施例中,所述初始显示元素通过如下方式创建:

获取所述目标游戏的显示数据,根据所述显示数据确定显示元素数据;

基于所述显示元素数据调用元素生成接口,并通过所述元素生成接口创建初始显示元素代码;

根据所述初始显示元素代码创建所述初始显示元素。

具体的,所述显示数据具体是指所述目标游戏中需要向玩家进行展示的相关数据,包括但不限于ui对应的数据,游戏角色模型对应的数据,道具对应的数据等;相应的,所述显示元素数据具体是指所述目标游戏中需要向玩家进行展示的相关显示元素对应的数据,即目标游戏中需要向玩家展示的ui对应的数据,显示元素数据可以包括显示元素对应的颜色、外观、大小等相关的数据;所述元素生成接口具体是指能够根据显示元素数据生成初始显示元素代码的接口,所述显示元素代码是所述初始显示元素的底层支持。

实际应用中,所述元素生成接口可以是unityngui开发工具所具有的插件,再需要进行ui创建时,可以结合ui的预制。自动生成一份语法规范统一的ui代码,从而实现创建初始显示元素;相应的,所述初始显示元素代码可以采用lua脚本语言。

基于此,在创建所述初始显示元素的过程中,首先获取所述目标游戏的显示数据,而由于所述显示数据中包含目标游戏全部的需要显示的内容相关的数据,因此需要在所述显示数据中抽取所述显示元素数据在,之后基于所述显示元素数据调用元素生成接口,并通过所述元素生成接口创建所述初始显示元素代码,最后根据所述初始显示元素代码即可创建所述初始显示元素。

以目标游戏为j游戏为例对本申请提供的更新方法进行说明,为了能够提高j游戏中向玩家展示的ui的更新效率,此时将获取j游戏中包含的全部初始事件类型{hp事件类型,mp事件类型,消耗品事件类型,技能事件类型},以及j游戏的游戏机制(被怪物攻击,吃恢复hp药剂会引起游戏角色hp变化;释放技能,吃恢复mp药剂会引起游戏角色mp变化;消耗金币,消耗药剂,消耗材料会引起游戏角色消耗品变化;释放技能,技能升级会引起游戏角色技能变化等),并且在j游戏中,通过显示终端向玩家展示的画面中包括hp对应的hp_ui,mp对应的mp_ui,消耗品(金币,药剂等)对应的c_ui,技能对应的s_ui。

进一步的,此时根据游戏机制可以确定驱动hp_ui变化的初始数据字段包括(攻击数据字段,hp药剂数据字段),驱动mp_ui变化的初始数据字段包括(技能数据字段,mp药剂数据字段)驱动c_ui变化的初始数据字段包括(金币数据字段,药剂数据字段),以及驱动s_ui变化的初始数据字段包括(技能数据字段);也就是说,攻击数据字段和hp药剂数据字段可能会引起j游戏中hp_ui发生变化,技能数据字段和mp药剂数据字段可能会引起j游戏中mp_ui发生变化,金币数据字段和药剂数据字段可能会引起j游戏中c_ui发生变化,技能数据字段可能会引起j游戏中s_ui发生变化。

更进一步的,而j游戏在运行的过程中,如果需要保证各个ui的变化符合游戏机制,即能够根据游戏的进程随时进行更新,以使得玩家可以准确的了解游戏的状态,需要对各个数据字段进行监听,而如果采用轮询的方式进行每帧监听,可能需要消耗较多的计算机资源才能够完成;因此为了能够节省计算机资源的消耗,同时保证各个ui可以根据游戏进程及时进行更新,可以将事件类型与初始数据字段进行关联,以实现在游戏角色触发某一事件时,通过只对该事件关联的数据字段进行监听即可,因为此时并不会造成其他ui的变化,因此此时可以根据游戏机制建立初始事件类型与初始数据字段之间的关键关系;即hp事件类型与攻击数据字段和hp药剂数据字段关联,mp事件类型与技能数据字段和mp药剂数据字段关联,消耗品事件类型与金币数据字段和药剂数据字段,技能事件类型与技能数据字段关联,以实现在进行ui更新时,可以根据事件类型对相应的数据字段进行监听,实现及时的通过数据驱动ui进行更新。

此外,由于游戏机制的不同,游戏角色在目标游戏中触发的目标事件也可能对应一个或多个事件类型,也就是说,游戏角色的状态信息对应有目标事件,而目标时间可能对应一个或多个事件类型;比如游戏角色在城镇中移动,此时由于没有怪物能够攻击游戏角色,因此确定当前游戏画面中所显示的ui能够发生变化的ui只有金币对应的ui和材料对应的ui,此时确定游戏角色触发的事件类型为消耗品事件类型,之后对消耗品事件类型对应的数据字段进行监听即可;再比如游戏角色在攻击地图中的怪物,此时由于游戏角色处于攻击/被攻击的状态,因此确定当前游戏角色的hp,mp,技能,消耗品对应的ui都可能发生变化,此时确定游戏角色触发的事件类型有hp事件类型、mp事件类型、消耗品事件类型和技能事件类型,则此时可以同时对各个事件类型关联的数据字段进行监听,以实现及时通过数据驱动ui进行更新,向玩家展示正确的游戏画面。

综上,通过建立事件类型与数据字段的关联关系,实现在进行显示元素更新时,可以仅对游戏角色触发的事件类型关联的数据字段进行监听,从而避免浪费过多的计算机资源对不会发生变化的数据字段进行监听,从而进一步提高了显示元素的更新效率,同时节省计算机资源。

步骤s104,根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段。

具体的,在上述获取到游戏角色的状态信息的基础上,进一步的,此时表明玩家正在控制游戏角色,而为了能够及时的向玩家展示不同状态下显示元素的更新情况,将根据所述状态信息确定所述游戏角色触发的事件类型,同时读取所述事件类型关联的数据字段,其中,所述事件类型与所述数据字段的相关描述可以参见上述实施例相应的描述内容,在此不作过多赘述。

基于此,在确定所述游戏角色触发的事件类型的情况下,之后进行事件类型的关联的数据字段读取操作,而所读取的数据字段即为需要进行监听的数据字段,并且是当前游戏角色所能够引起显示元素变化所对应的数据字段,而与事件类型无关的数据字段在此时则不需要进行监听,以减少计算机资源的消耗。

进一步的,在确定所述游戏角色触发的事件类型的过程中,由于游戏角色触发的不同事件会对应一个或多个事件类型,因此为了能够保证向玩家展示的显示元素是游戏角色的变动而引起的最新显示元素状态,可以根据目标事件确定所述事件类型,本实施例中,具体实现方式如下所述:

对所述状态信息进行解析,获得所述游戏角色的状态字段;

根据所述状态字段确定所述游戏角色触发的目标事件,并确定所述目标事件所属的所述事件类型。

具体的,所述状态字段具体是指识别游戏角色当前所处状态对应的字段,所述目标事件具体是指所述游戏角色在目标游戏中所发生的事件;基于此,在获取到所述状态信息之后,通过对所述状态信息进行解析,即可得到表明所述游戏角色当前所处状态的状态字段,之后根据所述状态字段确定所述游戏触发的目标事件,此时即可根据所述目标事件确定所述事件类型,以用于后续对所述事件类型关联的数据字段进行监听。

实际应用中,由于目标游戏的游戏机制设定不同,因此游戏角色可以在同一时刻触发一个或多个游戏事件,也就是说,根据所述状态字段确定所述游戏角色触发的目标事件可以是至少一个,相应的,在确定所述目标事件所属的事件类型时也可能是多个,本实施例以游戏角色触发一个目标事件为例进行说明,触发多个事件的场景可以参见本实施例相应的描述内容,在此不作过多赘述。

更进一步的,在确定所述事件类型之后,此时即可读取所述事件类型关联的数据字段,而在读取所述数据字段的过程中,虽然是通过关联关系进行读取的,但是由于数据字段数量较多,因此为了能够快速的读取到所述数据字段,可以按照字段标签进行快速的识别和读取,本实施例中,具体实现方式如下所述:

确定所述事件类型对应的字段标签,并基于所述字段标签读取所述目标游戏的候选数据字段;

根据读取结果确定记载所述字段标签的关联数据字段,并作为所述事件类型关联的所述数据字段。

具体的,所述字段标签具体是指各个数据字段所具有的唯一标签,所述候选数据字段具体是指所述目标游戏中能够驱动显示元素更新的数据字段,所述关联数据字段具体是指当前周期中可能驱动显示元素更新的数据字段,即所述事件类型所关联的数据字段,也就是说,需要后续进行监听的数据字段。

基于此,在确定所述游戏角色触发的事件类型的情况下,根据所述事件类型即可确定所述字段标签,之后基于所述字段标签读取所述目标游戏的候选数据字段,根据读取结果确定记载所述字段标签的关联数据字段,即所述关联数据字段为所述事件类型关联的所述数据字段,以用于后续对所述数据字段进行监听,实现快速的对显示元素进行更新。

沿用上例,获取游戏角色在j游戏中的状态信息,在游戏角色处于城镇中的情况下,确定游戏角色的状态是移动状态,进一步确定游戏角色触发的目标事件是金币消耗事件,此时确定金币消耗事件所属的事件类型为消耗品事件类型,而消耗品事件类型中所记载的字段标签为label_c,基于字段标签读取j游戏的候选数据字段{攻击数据字段,hp药剂数据字段,技能数据字段,mp药剂数据字段,金币数据字段},根据读取结果确定记载字段标签label_c的数据字段为金币数据字段,此时即可确定游戏角色触发的消耗品事件类型关联的数据字段为金币数据字段,后续根据检测规则对金币数据字段进行监听即可。

在游戏角色处于地图中的情况下,确定游戏角色的状态是打斗状态,进一步确定游戏角色触发的目标事件是打斗事件,此时确定打斗事件所属的事件类型包括{hp事件类型,mp事件类型,消耗品事件类型,技能事件类型},而hp事件类型中记载的字段标签为label_hp,mp事件类型中记载的字段标签为label_mp,消耗品事件类型中记载的字段标签为label_c,技能事件类型中记载的字段标签为label_s,基于各个字段标签读取j游戏的候选数据字段{攻击数据字段,hp药剂数据字段,技能数据字段,mp药剂数据字段,金币数据字段},根据读取结果确定上述全部数据字段都记载有相应的字段标签,则此时确定游戏角色在j游戏中触发的事件类型关联的数据字段为{攻击数据字段,hp药剂数据字段,技能数据字段,mp药剂数据字段,金币数据字段},后续根据检测规则对各个数据字段进行监听即可。

综上,通过字段标签的方式对目标游戏的候选数据字段进行读取,不仅可以快速的读取到所述目标数据字段,还能够保证读取目标数据字段的精准度,从而保证了可以对事件类型关联的数据字段进行有效的监听,以提高后续显示元素的更新效率。

步骤s106,按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定由属性值变化为目标属性值的目标数据字段。

具体的,在上述读取到所述数据字段的基础上,进一步的,说明已经根据所述事件类型确定驱动显示元素更新的数据字段,而此时则需要对所述数据字段进行监听,以实现对显示元素进行及时更新;在监听所述数据字段的过程中,由于不同的数据字段驱动的显示元素的更新频率不同,也就是说,显示元素发生变化的频率可能每秒或每毫秒都发生变化,也可能是每分钟发生变化,因此在对所述数据字段进行监听的过程中,可以根据预设的检测规则实现;即所述检测规则具体是指对数据字段的属性值进行监听的策略,不同的数据字段可以采用不同的检测规则;如技能变化较慢(存在冷却时间),则技能数据字段可以采用检测周期较长(每隔几秒)的检测策略进行轮询监听,再或者hp变化较快,则hp数据字段可以采用检测周期较短(每隔几毫秒)的检测策略进行轮询监听。

需要说明的是,数据字段在驱动显示元素变化的过程中,实则是根据数据字段的属性值实现的,属性值的大小发生变化才会导致显示元素发生变化,例如hp数据字段的数据值增大,相应的,游戏角色的血量会相应增加,即hp_ui会发生变化;因此在按照所述检测规则对数据字段进行检测的过程中,实则是检测所述数据字段的属性值,之后根据检测结果确定数据字段的属性值和目标属性值,如果属性值和目标属性值不一致,则说明数据字段驱动的显示元素需要进行更新,则将该数据字段确定为所述目标数据字段;如果属性值和目标属性值一致,则说明数据字段驱动的显示元素不需要进行更新,则不作任何处理即可。此外,所述检测规则的设定可以根据实际应用场景进行设定,本实施例在此不作任何限定。

进一步的,在对所述数据字段的属性值进行检测,并确定所述目标数据字段的过程中,由于游戏角色可能首次触发事件类型而引起显示元素变化,也可能是多次触发后而引起显示元素变化的,因此为了能够提高后续驱动显示元素的更新效率,可以采用不同的方式实现,本实施例中,具体实现方式如下所述:

检测所述状态信息的持续时间是否大于预设时间阈值;

若是,按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定所述数据字段的上一周期属性值以及当前周期属性值;选择所述上一周期属性值与所述当前周期属性值不一致的数据字段作为所述目标数据字段,所述目标数据字段的当前周期属性值为所述目标属性值。

若否,按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定所述数据字段的初始属性值以及当前属性值;选择所述初始属性值与所述当前属性值不一致的数据字段作为所述目标数据字段,所述目标数据字段的当前属性值为所述目标属性值。

具体的,所述持续时间具体是指游戏角色处于当前状态所持续的时间,所述上一周期属性值具体是指上一监听周期中监听到的数据字段的属性值,所述当前周期属性值具体是指当前监听周期中监听到的数据字段的属性值;所述初始属性值具体是指游戏角色初次进入当前阶段时监听到的数据字段的属性值,并且所述初始属性值是在事件类型关联所述数据字段时默认的属性值,相应的,所述当前属性值具体是指状态持续一段时间后监听到的属性值。

基于此,当确定所述数据字段的情况下,可以通过检测所述状态信息的持续时间的方式选择不同的监听方式进行确定所述目标数据字段,即检测所述状态信息的持续时间是否大于预设时间阈值,若是,说明所述游戏角色处于当前状态的时间较长,则此时可以采用每帧监听的方式,轮询所述数据字段的属性值,根据检测结果确定所述数据字段在上一监听周期中的上一周期属性值,以及当前监听周期中的当前周期属性值;而由于事件类型关联的数据字段可能较多,因此可以选择当前周期属性值和上一周期属性值不一致的数据字段作为所述目标数据字段,以确定目标数据字段确定显示元素发生了变化,以用于后续的显示元素更新即可。

若否,说明所述后续角色处于当前状态的时间较短,进一步说明游戏角色可能刚刚进入当前状态,则此时可以采用每帧监听的方式,轮询所述数据字段的属性值,根据检测结果确定所述数据字段的初始属性值,以及当前监听到的当前属性值,之后选择所述初始属性值与所述当前属性值不一致的数据字段作为所述目标数据字段,以根据目标数据字段确定显示元素发生的变化,以用于后续的显示元素更新即可;此外,所述预设时间阈值可以根据实际应用场景进行设定,可以设置为毫秒级别,微秒级别或者秒级别,本实施例在此不作任何限定。

沿用上例,在游戏角色处于地图中的情况下,确定游戏角色的状态是打斗状态,此时确定事件类型关联的数据字段为{攻击数据字段,hp药剂数据字段,技能数据字段,mp药剂数据字段,金币数据字段};进一步的,由于游戏角色处于打斗状态,因此可以采用每帧监听的方式对各个数据字段进行监听,通过监听确定攻击数据字段,hp药剂数据字段,技能数据字段和mp药剂数据字段的属性值都发生了变化,则此时确定攻击数据字段,hp药剂数据字段,技能数据字段和mp药剂数据字段为当前监听周期中的目标数据字段,并将各个数据字段对应的当前属性值作为各个数据字段的目标属性值,用于后续进行相应的ui更新。

综上,在对所述数据字段的属性值进行监听的过程中,为了能够在节省计算机资源消耗的情况下,提高后续显示元素的更新效率,可以针对状态信息持续时间的不同选择不同的监听方式进行确定所述目标数据字段。

步骤s108,确定所述目标数据字段对应的显示元素,根据所述目标属性值对所述显示元素进行更新并展示。

具体的,在上述确定所述目标数据字段的基础上,进一步的,此时即可根据所述目标数据字段确定该数据字段驱动的显示元素,以根据所述目标数据字段的目标属性值对所述显示元素进行更新,其中,所述显示元素具体是指需要通过终端向玩家展示的游戏画面中所包含的ui,相应的,所述目标属性值具体是指驱动所述显示元素变化的属性值,需要说明的是,由于数据字段驱动所述显示元素更新的基础,因此需要绑定所述数据字段和所述显示元素,例如通过friendbind.lua将数据字段和显示元素变量进行绑定,从而实现数据字段驱动现实元素变化的效果。

进一步的,确定所述显示元素,并对其进行更新的过程中,由于显示元素是由代码组成,因此可以通过确定代码的方式确定所述显示元素,之后在对其进行更新,以获得所述目标显示元素进行展示,本实施例中,具体实现方式如下所述:

确定所述目标数据字段驱动的显示代码,并根据所述显示代码确定所述显示元素;

根据所述目标属性值对所述显示元素进行更新获得目标显示元素;

获取承载所述显示元素的游戏界面;根据所述目标显示元素对所述游戏界面进行更新,并通过更新后的游戏界面展示所述目标显示元素。

具体的,所述显示代码是组成所述显示元素的底层支持,所述目标显示元素具体是指对所述显示元素进行更新后需要展示的显示元素;相应的,所述游戏界面具体是指承载所述显示元素的界面,并且需要向玩家进行展示的界面。

基于此,在确定所述目标数据字段驱动的显示代码之后,即可根据所述显示代码确定所述显示元素,之后利用所述目标数据字段的目标属性值驱动所述显示元素进行更新,获得所述目标显示元素;之后为了能够向玩家展示更新后的显示元素所属的界面,可以获取所述显示元素的游戏界面,之后根据所述目标显示元素对所述游戏界面进行更新,之后通过所述游戏界面展示所述目标显示元素即可。

参见图2所示,其中,玩家控制的游戏角色为202,游戏角色202所击打的对象为敌人204,hp为游戏角色的血量ui,mp为游戏角色的蓝量ui,s1至s5为游戏角色对应的技能ui;此时游戏角色202与敌人204进行相互攻击,玩家控制游戏角色释放了技能s1和技能s3,而游戏角色202同时被敌人204所攻击,根据游戏的运行机制确定,游戏角色202释放技能s1和技能s3,会消耗掉一定的蓝量,同时技能s1和技能s3会处于冷却状态,而游戏角色202被敌人204所击打,会掉一定的血量,因此可以确定游戏界面中的血量ui,蓝量ui以及技能ui都会发生变化,通过数据驱动的方式即可确定各个ui的变化情况,根据各个ui对应的数据字段的属性值对各个ui进行更新,以获得如图3所示的内容,并将图3所示的内容向玩家进行展示即可,以告知玩家当前游戏角色202以及相应的血量、蓝量和技能冷却情况,方便玩家控制游戏角色进行后续的操作。

综上,通过所述游戏界面对所述目标显示元素进行更新,不仅可以保证更新后的显示元素可以向玩家进行展示,还能够通过所述游戏界面告知当前游戏角色的状态,方便玩家后续控制游戏角色进行相应的操作。

本申请提供的更新方法,在获取到目标游戏中游戏角色的状态信息后,将根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段,之后按照所述检测规则对所述数据字段的属性值进行检测,根据检测结果确定属性值发生变化的目标数据字段;最后确定所述目标数据字段对应的显示元素,并根据变化后的目标数据字段的目标属性值对所述显示元素进行更新,实现了通过数据驱动的方式提高显示元素更新的效率,同时不需要预先配置显示元素的各个状态的变化数据,进一步节省了显示元素的更新所消耗的计算资源。

下述结合附图4,以本申请提供的更新方法在游戏中的应用为例,对所述更新方法进行进一步说明。其中,图4示出了本申请一实施例提供的一种应用于游戏场景中的更新方法的处理流程图,具体包括以下步骤:

步骤s402,获取目标游戏中游戏角色的状态信息。

步骤s404,对状态信息进行解析,获得游戏角色的状态字段。

步骤s406,根据状态字段确定游戏角色触发的目标事件,并确定目标事件所属的所述事件类型。

步骤s408,确定事件类型对应的字段标签,并基于字段标签读取目标游戏的候选数据字段。

步骤s410,根据读取结果确定记载字段标签的关联数据字段,并作为事件类型关联的数据字段。

步骤s412,检测状态信息的持续时间是否大于预设时间阈值;若是,执行步骤s414;若否,执行步骤s418。

步骤s414,按照预设的检测规则对数据字段的属性值进行检测,根据检测结果确定数据字段的上一周期属性值以及当前周期属性值。

步骤s416,选择上一周期属性值与当前周期属性值不一致的数据字段作为目标数据字段,目标数据字段的当前周期属性值为目标属性值。

步骤s418,按照预设的检测规则对数据字段的属性值进行检测,根据检测结果确定数据字段的初始属性值以及当前属性值。

步骤s420,选择初始属性值与当前属性值不一致的数据字段作为目标数据字段,目标数据字段的当前属性值为所述目标属性值。

步骤s422,确定目标数据字段对应的显示元素,根据目标属性值对显示元素进行更新并展示。

本申请提供的更新方法,实现了通过数据驱动的方式提高显示元素更新的效率,同时不需要预先配置显示元素的各个状态的变化数据,进一步节省了显示元素的更新所消耗的计算资源。

与上述方法实施例相对应,本申请还提供了更新装置实施例,图5示出了本申请一实施例提供的一种更新装置的结构示意图。如图5所示,该装置包括:

获取模块502,被配置为获取目标游戏中游戏角色的状态信息;

读取模块504,被配置为根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段;

确定模块506,被配置为按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定由属性值变化为目标属性值的目标数据字段;

展示模块508,被配置为确定所述目标数据字段对应的显示元素,根据所述目标属性值对所述显示元素进行更新并展示。

一个可选的实施例中,所述更新装置,还包括:

建立模块,被配置为获取所述目标游戏中包含的初始事件类型,以及所述目标游戏的游戏机制;根据所述游戏机制确定驱动所述目标游戏中的初始显示元素变化的初始数据字段;基于所述游戏机制建立所述初始事件类型与所述初始数据字段的关联关系。

一个可选的实施例中,所述初始显示元素通过如下方式创建:

获取所述目标游戏的显示数据,根据所述显示数据确定显示元素数据;基于所述显示元素数据调用元素生成接口,并通过所述元素生成接口创建初始显示元素代码;根据所述初始显示元素代码创建所述初始显示元素。

一个可选的实施例中,所述读取模块504进一步被配置为:

对所述状态信息进行解析,获得所述游戏角色的状态字段;根据所述状态字段确定所述游戏角色触发的目标事件,并确定所述目标事件所属的所述事件类型。

一个可选的实施例中,所述读取模块504进一步被配置为:

确定所述事件类型对应的字段标签,并基于所述字段标签读取所述目标游戏的候选数据字段;根据读取结果确定记载所述字段标签的关联数据字段,并作为所述事件类型关联的所述数据字段。

一个可选的实施例中,所述确定模块506进一步被配置为:

检测所述状态信息的持续时间是否大于预设时间阈值;若是,按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定所述数据字段的上一周期属性值以及当前周期属性值;选择所述上一周期属性值与所述当前周期属性值不一致的数据字段作为所述目标数据字段,所述目标数据字段的当前周期属性值为所述目标属性值。

一个可选的实施例中,所述确定模块506进一步被配置为:

按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定所述数据字段的初始属性值以及当前属性值;选择所述初始属性值与所述当前属性值不一致的数据字段作为所述目标数据字段,所述目标数据字段的当前属性值为所述目标属性值。

一个可选的实施例中,所述展示模块508进一步被配置为:

确定所述目标数据字段驱动的显示代码,并根据所述显示代码确定所述显示元素;根据所述目标属性值对所述显示元素进行更新获得目标显示元素,并展示所述目标显示元素。

一个可选的实施例中,所述展示模块508进一步被配置为:

获取承载所述显示元素的游戏界面;根据所述目标显示元素对所述游戏界面进行更新,并通过更新后的游戏界面展示所述目标显示元素。

本申请提供的更新装置,在获取到目标游戏中游戏角色的状态信息后,将根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段,之后按照所述检测规则对所述数据字段的属性值进行检测,根据检测结果确定属性值发生变化的目标数据字段;最后确定所述目标数据字段对应的显示元素,并根据变化后的目标数据字段的目标属性值对所述显示元素进行更新,实现了通过数据驱动的方式提高显示元素更新的效率,同时不需要预先配置显示元素的各个状态的变化数据,进一步节省了显示元素的更新所消耗的计算资源。

上述为本实施例的一种更新装置的示意性方案。需要说明的是,该更新装置的技术方案与上述的更新方法的技术方案属于同一构思,更新装置的技术方案未详细描述的细节内容,均可以参见上述更新方法的技术方案的描述。此外,装置实施例中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。

图6示出了根据本申请一实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。

计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本申请的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。

其中,处理器620用于执行如下计算机可执行指令:

获取目标游戏中游戏角色的状态信息;

根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段;

按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定由属性值变化为目标属性值的目标数据字段;

确定所述目标数据字段对应的显示元素,根据所述目标属性值对所述显示元素进行更新并展示。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的更新方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述更新方法的技术方案的描述。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

获取目标游戏中游戏角色的状态信息;

根据所述状态信息确定所述游戏角色触发的事件类型,并读取所述事件类型关联的数据字段;

按照预设的检测规则对所述数据字段的属性值进行检测,根据检测结果确定由属性值变化为目标属性值的目标数据字段;

确定所述目标数据字段对应的显示元素,根据所述目标属性值对所述显示元素进行更新并展示。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的更新方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述更新方法的技术方案的描述。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

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

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

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

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