CN110339571A - 事件生成方法和装置、存储介质以及电子装置 - Google Patents

事件生成方法和装置、存储介质以及电子装置 Download PDF

Info

Publication number
CN110339571A
CN110339571A CN201810306732.1A CN201810306732A CN110339571A CN 110339571 A CN110339571 A CN 110339571A CN 201810306732 A CN201810306732 A CN 201810306732A CN 110339571 A CN110339571 A CN 110339571A
Authority
CN
China
Prior art keywords
event
subevent
combination
description information
information
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.)
Pending
Application number
CN201810306732.1A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810306732.1A priority Critical patent/CN110339571A/zh
Publication of CN110339571A publication Critical patent/CN110339571A/zh
Pending legal-status Critical Current

Links

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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content

Abstract

本发明公开了一种事件生成方法和装置、存储介质以及电子装置。其中,该方法包括:获取事件生成请求,其中,事件生成请求用于请求生成目标事件;获取目标事件的事件描述信息,其中,事件描述信息至少用于指示生成目标事件所需的子事件以及子事件之间的组合关系;按照事件描述信息生成目标事件,其中,目标事件中包括具有组合关系的子事件。本发明解决了相关技术中通过设计开发人员手动编写代码生成事件,导致事件生成效率低的技术问题。

Description

事件生成方法和装置、存储介质以及电子装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种事件生成方法和装置、存储介质以及电子装置。
背景技术
目前,为了生成某个事件,相关技术通常需要设计开发人员手动编写该事件整个执行流程的代码,这种事件生成方式需要设计开发人员编写大量代码,不仅事件生成效率较低,而且也会增加人员成本,尤其是需要对事件中的部分子事件进行调整时,则需要设计开发人员对调整后的事件的执行流程重新编写代码。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种事件生成方法和装置、存储介质以及电子装置,以至少解决相关技术中通过设计开发人员手动编写代码生成事件,导致事件生成效率低的技术问题。
根据本发明实施例的一个方面,提供了一种事件生成方法,包括:获取事件生成请求,其中,所述事件生成请求用于请求生成目标事件;获取所述目标事件的事件描述信息,其中,所述事件描述信息至少用于指示生成所述目标事件所需的子事件以及所述子事件之间的组合关系;按照所述事件描述信息生成所述目标事件,其中,所述目标事件中包括具有所述组合关系的所述子事件。
根据本发明实施例的另一方面,还提供了一种事件生成装置,包括:第一获取单元,用于获取事件生成请求,其中,所述事件生成请求用于请求生成目标事件;第二获取单元,用于获取所述目标事件的事件描述信息,其中,所述事件描述信息至少用于指示生成所述目标事件所需的子事件以及所述子事件之间的组合关系;生成单元,用于按照所述事件描述信息生成所述目标事件,其中,所述目标事件中包括具有所述组合关系的所述子事件。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行本发明实施例中任意一种事件生成方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器通过所述计算机程序执行本发明实施例中任意一种事件生成方法。
在本发明实施例中,通过获取事件生成请求,其中,所述事件生成请求用于请求生成目标事件;获取所述目标事件的事件描述信息,其中,所述事件描述信息至少用于指示生成所述目标事件所需的子事件以及所述子事件之间的组合关系;按照所述事件描述信息生成所述目标事件,其中,所述目标事件中包括具有所述组合关系的所述子事件,达到了快速生成事件的目的,从而实现了提高事件生成效率的技术效果,进而解决了相关技术中通过设计开发人员手动编写代码生成事件,导致事件生成效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的事件生成方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的事件生成方法的流程图;
图3是根据本发明优选实施例的一种游戏关卡的内容需求的示意图;
图4是根据本发明优选实施例的一种组节点与原子事件节点组合的示意图;
图5是根据本发明优选实施例的原子事件节点类图的示意图;
图6是根据本发明优选实施例的一种游戏玩法组合示例对应的插件化配置的示意图;
图7是根据本发明优选实施例一种插件化游戏玩法设计方案的执行流程图;
图8是根据本发明优选实施例一种插件化游戏玩法的执行时序图;
图9是根据本发明实施例的一种可选的事件生成装置的示意图;以及
图10是根据本发明实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种事件生成方法。
可选地,在本实施例中,上述事件生成方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的事件生成方法可以由终端104来执行,其中,终端104执行本发明实施例的事件生成方法也可以是由安装在其上的客户端来执行。本发明实施例以客户端执行事件生成方法为例进行说明。
可选地,客户端执行本发明实施例的事件生成方法的具体流程可以描述为:客户端获取事件生成请求,其中,事件生成请求用于请求生成目标事件;客户端获取目标事件的事件描述信息,其中,事件描述信息至少用于指示生成目标事件所需的子事件以及子事件之间的组合关系;客户端按照事件描述信息生成目标事件,其中,目标事件中包括具有组合关系的子事件。
下面将对本发明实施例的事件生成方法进行具体说明。
图2是根据本发明实施例的一种可选的事件生成方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,获取事件生成请求,其中,事件生成请求用于请求生成目标事件;
步骤S204,获取目标事件的事件描述信息,其中,事件描述信息至少用于指示生成目标事件所需的子事件以及子事件之间的组合关系;
步骤S206,按照事件描述信息生成目标事件,其中,目标事件中包括具有组合关系的子事件。
通过上述步骤S202至步骤S206,在获取事件生成请求之后,通过获取指示生成目标事件所需的子事件以及子事件之间的组合关系的事件描述信息,并按照该事件描述信息生成目标事件,可以解决了相关技术中通过设计开发人员手动编写代码生成事件,导致事件生成效率低的技术问题,进而达到提高事件生成效率的技术效果。
在步骤S202提供的技术方案中,目标事件可以是任意一类事件,例如在游戏领域中游戏关卡,本发明实施例对目标事件的类型并不做具体限定。目标事件中可以包括至少一个子事件,例如游戏关卡中可以包括多个任务事件,例如推一个箱子到目标点、打一波怪物、走迷宫到目标点等。事件生成请求可以用于请求生成目标事件,需要说明的是,本发明实施例对事件生成请求的触发方式不做具体限定,假设目标事件为在游戏领域中的游戏关卡,则触发生成该事件生成请求可以是游戏玩家在游戏过程中的任意操作,例如鼠标点击操作等,或者游戏玩家在完成某个任务后自动触发生成的。可选地,事件生成请求也可以是开发人员手动触发生成的,例如游戏开发人员手动发起一个游戏关卡的设计请求。
在步骤S204提供的技术方案中,在获取到事件生成请求之后,本发明实施例可以对该事件生成请求进行解析,从中获取到所请求生成的目标事件的标识信息,例如事件ID等。然后再获取目标事件的事件描述信息,其中,目标事件的事件描述信息可以至少用于指示生成目标事件所需的子事件以及这些子事件之间的组合关系,以便于按照所获取到的事件描述信息生成目标事件。
可选地,目标事件的事件描述信息可以包括以下两部分:
第一事件描述信息,可以至少用于指示生成目标事件所需的子事件,以及这些子事件所属的组合事件。
需要说明的是,目标事件可以包括至少一个组合事件,每个组合事件可以包括至少一个子事件。例如游戏关卡(相当于目标事件)中包括三种游戏玩法(相当于组合事件),具体为推箱子玩法、守塔玩法以及走迷宫玩法,其中推箱子玩法(相当于组合事件)中包括推两个箱子到目标点,而每推一个箱子到目标点即为一个子事件,也就是说该推箱子玩法这一组合事件包括两个子事件。
还需要说明的是,目标事件中所包括的组合事件,以及组合事件中所包括的子事件可以由标识号唯一表示,也就是说,第一事件描述信息中至少可以包括用于指示子事件的标识号的信息,以及该子事件所属的组合事件的标识号的信息。可选地,第一事件描述信息除了包括上述用于指示子事件以及子事件所属的组合事件的标识号的信息之外,还可以包括以下信息中的至少之一:用于指示子事件是否支持回退操作的信息,例如,推一个箱子到目标点这一子事件支持回退操作,而打一波怪物这一子事件不支持回退操作;用于指示子事件是否处于激活状态的信息,其中,处于激活状态的子事件可以允许执行,而处于未激活状态的子事件不允许执行;用于指示子事件是否被触发的信息、子事件被触发时所执行的操作的信息以及子事件被触发回退时所执行的操作的信息。需要说明的是,根据实际需求第一事件描述信息中还可以其他信息,此处不再一一举例说明。
第二事件描述信息,可以至少用于指示目标事件中所包括的至少一个组合事件的执行依赖关系,此处的至少一个组合事件的执行依赖关系与生成目标事件所需的子事件之间的组合关系实质相同。
需要说明的是,至少一个组合事件的执行依赖关系也即子事件之间的执行顺序,具体地,从属于一个组合事件的所有子事件执行完以后标志着该组合事件执行完。例如游戏关卡(相当于目标事件)中包括三种游戏玩法(相当于组合事件),具体为推箱子玩法、守塔玩法以及走迷宫玩法,其中推箱子玩法(相当于组合事件)中包括推两个箱子到目标点(相当于两个子事件),守塔玩法中包括打两波怪物,走迷宫玩法中包括走迷宫到目标点,如果推箱子玩法、守塔玩法以及走迷宫玩法这三个组合事件依次顺序执行,那么只有在推两个箱子到目标点执行完之后才标志着推箱子玩法执行完,然后才可以执行守塔玩法,同理只有在打两波怪物执行完之后才标志着守塔玩法执行完,然后才可以执行走迷宫玩法,当走迷宫到目标点执行完之后标志着走迷宫玩法执行完。
还需要说明的是,第二事件描述信息可以包括以下信息中的至少之一:用于标识组合事件的标识号的信息;用于标识组合事件的后继组合事件的标识号的信息,其中,一个组合事件的后继组合事件应该在该组合事件执行之后执行;用于指示组合事件中所包括的子事件的个数的信息;用于指示组合事件是否处于激活状态的信息,其中,该组合事件如果处于激活状态,那么该组合事件所包括的所有的子事件均处于激活状态;用于指示触发组合事件的后继组合事件为激活态的信息。需要说明的是,根据实际需求第二事件描述信息中还可以其他信息,此处不再一一举例说明。
基于上述描述,获取目标事件的事件描述信息可以具体包括:获取上述第一事件描述信息和获取第二事件描述信息。
在步骤S206提供的技术方案中,在获取到目标事件的事件描述信息之后,本发明实施例可以根据该事件描述信息中所指示的子事件之间的组合关系对子事件进行组合,以达到生成目标事件的目的。
可选地,事件描述信息可以包括第一事件描述信息和第二事件描述信息,相应地,按照事件描述信息生成目标事件可以具体包括:按照第一事件描述信息对子事件执行第一配置操作,其中,第一配置操作用于指示子事件所属的组合事件;按照第二事件描述信息对至少一个组合事件执行第二配置操作,其中,第二配置操作用于指示至少一个组合事件的执行依赖关系;根据第一配置操作和第二配置操作生成目标事件。
需要说明的是,按照第一事件描述信息对子事件执行的第一配置操作可以为配置子事件的标识号为子事件所属的组合事件的标识号,其中,组合事件所包括的子事件均执行完后标志组合事件执行完。需要说明的是,按照第一事件描述信息配置子事件的标识号为其所属的组合事件的标识号可以清楚地指示一个组合事件所包括的子事件的个数,这样以便于准确地判定当组合事件中所包括的所有的子事件均执行完后该组合事件才执行完。
还需要说明的是,按照第二事件描述信息对组合事件执行的第二配置操作可以为配置至少一个组合事件中的第一组合事件的后继标识号为至少一个组合事件中的第二组合事件的标识号,其中,后继标识号用于指示第一组合事件在第二组合事件之前执行。此处需要说明的是,第一组合事件和第二组合事件可以为目标事件所包括的至少一个组合事件中的任意组合事件,此处的“第一”以及“第二”并不能限定组合事件的执行顺序,第一组合事件和第二组合事件的执行顺序是通过第二事件描述信息中的后继标识号限定的,即第一组合事件的后继标识号为第二组合事件的标识号,则说明第二组合事件为第一组合事件的后继组合事件,也即第一组合事件执行完之后执行第二组合事件。
通过上述第一配置操作以及第二配置操作,可以实现按照事件描述信息生成目标事件,且该目标事件中的子事件具有事件描述信息中所指示的组合关系。
作为一种可选的实施例,按照事件描述信息生成目标事件可以包括以下步骤:从子事件集合中选择所需的子事件,其中,子事件集合中包括子事件;将子事件按照组合关系进行组合,得到目标事件。
需要说明的是,该可选实施例中的子事件集合中可以包括至少一个子事件,这些子事件中可以包括生成目标事件所需的子事件。子事件集合可以为预先准备好的,该可选实施例在获取到目标事件的事件描述信息之后,可以从子事件集合中直接选择得到生成目标事件所需的子事件,然后对获取到的子事件进行组合,以生成目标事件。该可选实施例通过从子事件集合中直接选择获取生成目标事件所需的子事件,相较于建立子事件该可选实施例可以达到缩短子事件的获取时间,进而达到提高目标事件的生成效率的效果。
作为一种可选的实施例,按照事件描述信息生成目标事件可以包括以下步骤:按照事件描述信息确定出子事件的执行次数N,以及确定出组合关系用于指示按顺序执行N个相同的子事件,其中,N大于等于1;将N个相同的子事件按照组合关系进行组合,得到目标事件。
需要说明的是,生成目标事件所需的子事件可以为一个或者多个,每个子事件的执行次数可以为一次,也可以为多次,也即每个子事件可以重复执行N次。事件描述信息中所指示的子事件之间的组合关系可以用于指示按顺序执行N个相同的子事件,其中,此处的按顺序执行可以是依次顺序执行,也可以为无序执行,即没有先后顺序。
该可选实施例可以按照事件描述信息对重复执行N次的相同的子事件进行组合以生成目标事件。需要说明的是,该可选实施例通过获取子事件的执行次数,可以达到只获取一次该子事件,然后对该子事件复制N次即可,并不需要重复获取N次该子事件,进而提高目标事件的生成效率的效果。
作为一种可选的实施例,生成目标事件所需的子事件可以包括:第一子事件和第二子事件,其中,第一子事件和第二子事件可以为生成目标事件所需的子事件中的任意子事件,此处的“第一”和“第二”也不构成顺序的限定,仅仅是为了名称的区分。该可选实施例中的第一子事件的执行次数为N1,第二子事件的执行次数为N2,N1和N2大于等于1,其中,确定出组合关系用于指示按顺序执行N个相同的子事件可以包括:确定出组合关系用于指示按顺序执行N1个相同的第一子事件,按顺序执行N2个相同的第二子事件,其中,第一子事件和第二子事件之间具有预定的执行依赖关系,或者,不设置有执行依赖关系。
可选地,上述执行依赖关系可以为:在N1个相同的第一子事件都执行完之后,才允许执行第二子事件;或者在N2个相同的第二子事件都执行完之后,才允许执行第一子事件。
需要说明的是,该可选实施例可以对生成目标事件所需的不同的子事件进行组合以生成目标事件。
通过上述两个可选实施例,可以达到对生成目标事件所需的子事件按照其组合关系进行组合以生成目标事件的目的,进而实现提高事件生成效率的效果。
作为一种可选的实施例,在按照事件描述信息生成目标事件之后,该可选实施例还可以包括执行该目标事件,具体执行过程可以描述为:
遍历目标事件中所包括的至少一个组合事件执行以下步骤,其中,组合事件在执行以下步骤时被标记为当前组合事件:
检测当前组合事件是否处于激活状态。
在检测到当前组合事件处于激活状态的情况下,执行当前组合事件中所包括的至少一个子事件。此处需要说明的是,在当前组合事件处于激活状态的情况下,可以设置该当前组合事件所包括的至少一个子事件均处于激活状态,当前组合事件中的至少一个子事件可以并列执行,也可以顺序执行,且在每执行一个子事件后第二事件描述信息中用于计数的字段计一次数,然后检测该字段的计数结果是否达到预定值,如果该字段的计数结果达到预定值,则说明该当前组合事件中所包括的至少一个子事件均已经执行完。
检测是否存在后继组合事件,其中,后继组合事件为在当前组合事件执行完以后执行的组合事件。此处需要说明的是,检测是否存在后继组合事件可以通过检测至少一个组合事件中是否存在标识号与当前组合事件的后继标识号相一致的组合事件,其中,后继标识号用于指示在执行完当前组合事件之后需要执行的组合事件,若存在则确定存在当前组合事件的后继组合事件;若不存在则确定不存在当前组合事件的后继组合事件。
在检测到存在后继组合事件的情况下,将后继组合事件作为当前组合事件。
通过上述步骤可以实现执行目标事件的目的。
在生成目标事件之后,该可选实施例还可以在客户端执行该目标事件,其中,本发明实施例对客户端并不做具体限定,例如,可以为应用客户端,也可以为网页客户端。
作为一种可选的实施例,在执行目标事件之后,该可选实施例可以对其执行是否成功进行判定,具体地,目标事件是否执行成功可以通过检测子事件按照组合关系是否执行成功进行判定,其中,在检测到子事件按照组合关系执行成功的情况下,可以确定目标事件执行成功。
可选地,该可选实施例可以通过以下步骤检测子事件按照组合关系是否执行成功:将执行目标事件后得到的事件结果信息与事件描述信息进行匹配,其中,在事件结果信息与事件描述信息相匹配的情况下,确定子事件按照组合关系执行成功,在事件结果信息与事件描述信息不相匹配的情况下,确定子事件按照组合关系执行失败。
需要说明的是,将执行目标事件后得到的事件结果信息与事件描述信息进行匹配可以由服务器执行,具体地,客户端可以将执行该目标事件所得到的事件结果信息发送给服务器,其中,服务器中可以预先存储有目标事件的事件描述信息,服务器在接收到客户端发送的事件结果信息之后,可以将事件结果信息与事件描述信息进行校验,判断事件结果信息与配置信息是否匹配,且服务器会向客户端发送通知消息,以通知客户端事件结果信息与事件描述信息是否相匹配这一判断结果。
可选地,客户端向服务器发送事件结果信息可以采用以下任意一种方式:客户端每执行一个子事件,则会向服务器发送一次执行该子事件后得到的事件结果信息;或者客户端在所有子事件均执行完之后,将所得到的事件结果信息发送给服务器。
需要说明的是,该可选实施例通过客户端与服务器之间的信息校验这一手段可以准确判断目标事件是否执行成功,进而可以实现客户端外挂等作弊的防范,以达到提高客户端安全性的效果。
本发明还提供了一种优选实施例,该优选实施例以将本发明应用于游戏领域为例,具体提供了一种游戏玩法插件化的设计与实现方案。在对该优选实施例进行详细介绍之前,此处首先对该优选实施例中出现的技术术语进行以下介绍:
原子事件节点:对应原子操作,原子操作可以指游戏玩法中的每一个具体操作,例如推一个箱子到目标点、消灭一波怪物等。
组节点:对应于原子操作的组合方式,具体可以包括两种方式,其中一种是顺序关系,即每个组节点可以指向一个后继组节点,组节点与其后继组节点之间是严格的顺序关系,当一个组节点事件全部完成后,才会激活它的后继组节点;另一种是包含关系,组节点包含的节点又称为子节点,一个组节点可以包含多个子节点,子节点可以是原子事件节点,也可以是其他组节点,子节点之间无序,当一个组节点的所有子节点都完成时,本组节点事件才全部完成。
此处需要说明的是,该优选实施例中的原子事件节点与本发明上述实施例中的子事件相对应,该优选实施例中的组节点与本发明上述实施例中的组合事件相对应,其实质相同。
该优选实施例所提供的将游戏玩法以插件化思想组合管理的设计与实现方案可以应用于游戏关卡的设计与开发中。基于游戏玩法拆分和灵活组合的插件化思想,该优选实施例设计了一套可以将多种游戏玩法动态组合的方案,通过将游戏玩法进行拆分,设计了原子事件节点对应每种具体玩法操作的触发事件,并设计了组节点来对原子事件节点进行组合,也即对各个游戏玩法所对应的具体触发事件进行组合,从而可以方便地实现丰富灵活的各类游戏玩法组合的效果。
该优选实施例可以在游戏引擎Unity中实现,下面将基于游戏引擎Unity的操作对该优选实施例进行具体介绍。
在游戏的设计中,需要实现对多种游戏玩法的自由组合,而游戏玩法之间可能是无顺序要求的,也可能是要求有先后顺序的。例如,图3是根据本发明优选实施例的一种游戏关卡的内容需求的示意图。如图3所示,游戏中一共有三种游戏玩法,即推箱子、消灭怪物以及迷宫,游戏玩法的具体要求是:玩家先完成推箱子玩法以及守塔玩法,然后再完成迷宫玩法,其中,推箱子玩法以及守塔玩法之间不要求先后顺序,并在上述两种玩法都完成之后,再进行迷宫玩法,也即走到迷宫目标点,以实现完成整个游戏关卡。具体地,推箱子玩法包括完成两次箱子推到目标点,其中,这两次箱子推到目标点之间也不要求先后顺序。守塔玩法包括两次消灭一波怪物,其中,这两次消灭一波怪物之间要求先后顺序。
需要说明的是,在实际应用场景中对产品需求进行分析时,可以将游戏玩法中的每一个具体操作提炼出来,例如图3中所示的箱子推到目标点、消灭一波怪物、走到迷宫目标点等。该优选实施例将上述每一个具体操作称为原子操作。通过该优选实施例,无论是多么复杂的游戏玩法组合需求,实际上都是由多个原子操作按照不同的组合方式组合起来的。
具体地,该优选实施例中的组合方式根据具体需求分为无序组合和顺序组合两种,其中:
无序组合:不要求原子操作或游戏玩法之间的先后顺序,例如,推箱子玩法中可以先推第一个箱子到目标点,也可以先推另一个箱子到目标点,只要最终把两个箱子都推到目标点即可。
顺序组合:要求原子操作或游戏玩法之间的先后顺序,例如,守塔玩法中两波怪物的出现顺序是先后出现的,因此消灭这两波怪物也必然是严格按照先后顺序进行。
该优选实施例基于上述对游戏玩法需求的分析,提出原子事件节点和组节点的概念,来进行插件化游戏玩法组合的设计。
原子事件节点:对应原子操作,例如箱子推到目标点、消灭一波怪物、走到迷宫目标点等。
组节点:对应原子操作的组合方式,可以包括两种组合方式,其中一种是顺序关系,每个组节点可以指向一个后继组节点,组节点与其后继组节点之间是严格的顺序关系,当一个组节点事件全部完成时,才会激活它的后继组节点。另一种是包含关系,组节点包含的节点又称为子节点,一个组节点可以包含多个子节点,子节点可以是原子事件节点,也可以是其他组节点,子节点之间无序,当一个组节点的所有子节点都完成时,本组节点事件才全部完成。需要注意的是,如果子节点是原子事件节点,这种对应关系是通过GroupID实现的,即如果原子事件节点的GroupID为某个组节点的GroupID,那么这个原子事件节点就是该组节点的子节点;如果子节点是组节点,这种对应关系是通过后继组节点实现的,即如果组节点A的PostGroupID为组节点B的GroupID,并且组节点B已经处于激活状态,就说明组节点A是组节点B的子节点。在后面的示例里对此也会有举例说明。
图4是根据本发明优选实施例的一种组节点与原子事件节点组合的示意图。下面结合图示详细介绍原子事件节点以及组节点的详细数据结构设计以及组合方式。
原子事件节点可以包含以下几个字段及方法:
GroupID:组节点ID,用于表示该原子事件节点属于哪个组节点;
IsUndoSupported:是否支持回退操作,例如推箱子玩法是支持的,因为箱子推到目标点还可以推走,而守塔玩法则是不支持回退操作的;
IsEnabled:是否激活,表示该原子事件节点是否处于激活状态,只有处于激活状态的原子事件节点才会生效,这一字段可以用于标记该原子事件节点所对应的游戏玩法是否激活,比如未激活的推箱子玩法所对应的原子事件节点的IsEnabled字段为否,表示箱子推到目标点也不会触发后续的事件;
IsTriggered:是否触发,表示该原子事件节点是否已经触发,触发的原子事件节点会通知其所在的组节点;
TriggerEvent():原子事件节点被触发时的操作,主要是在这个方法里通知其所在的组节点进行计数操作,也可以根据具体游戏玩法需要进行其他处理;
UnTriggerEvent():原子事件节点被触发回退时的操作,主要是在这个方法里通知其所在的组节点进行计数操作,也可以根据具体玩法需要进行其他处理。
原子事件节点对应于不同的具体游戏玩法实现,因此为了便于多种玩法的扩展性,需要按照继承的方式来实现,如图5所示:对于每种新增的玩法,都要继承于基础节点PluginNodeBase,例如推箱子玩法的节点PluginNode Box、守塔玩法的节点PluginNodeMonster、迷宫玩法的节点PluginNode Maze都继承于基础节点PluginNodeBase。在基础节点PluginNodeBase中可以在代码中直接设置该玩法是否可回退、以及对应的触发和回退触发操作的具体实现。并且在玩法中需要触发事件时调用TriggerEvent(),需要回退时调用UnTriggerEvent(),例如推箱子玩法中当箱子与目标点碰撞时,调用TriggerEvent()方法,推开目标点时调用UnTriggerEvent()。实现后的代码,由代码开发人员直接挂到玩法预制件上保存,待后续直接使用即可。
组节点可以包含以下几个字段及方法:
GroupID:组节点ID,用于唯一标识组节点;
PostGroupID:后继组节点ID,用于实现组节点的顺序组织,以及子节点为组节点的包含关系;
ChildCount:组节点所包含的子节点个数,用于记录该组节点包含多少个子节点,用于后续判断组节点对应事件是否完成;
IdEnabled:是否激活,表示该组节点是否处于激活状态,只有处于激活状态的组节点下的原子事件节点才会处于激活态;
TriggerPost():触发后继组节点为激活态;
组节点是通用实现,可以用于游戏玩法的组织,对于不同游戏玩法组节点的实现都是完全相同的。因此用一个独立的预制件,挂载该组节点保存,待后续直接使用即可。
此处需要说明的是,该优选实施例中的原子事件节点以及组节点的各个字段信息与本发明上述实施例中的事件描述信息相对应。
为了更清楚的进行说明,以图3中所示的游戏关卡的内容需求所对应的配置为例,图6是根据本发明优选实施例的一种游戏玩法组合示例对应的插件化配置的示意图,如图6所示,实线箭头表示组节点和对应子节点的包含关系,虚线箭头表示组节点与后继组节点之间的对应关系。GroupID=1的组节点1对应推箱子玩法,其中包括两个推箱子原子事件节点。GroupID=2的组节点2以及GroupID=3的组节点3对应守塔玩法(消灭两波怪物),GroupID=2的组节点2以及GroupID=3的组节点3分别包括一个消灭怪物原子事件节点。GroupID=5的组节点5对应迷宫玩法,其包括一个迷宫原子事件节点。GroupID=4的组节点4对应图3中的包括推箱子玩法和守塔玩法的框,也即GroupID=4的组节点4包括的子节点分别为GroupID=1的组节点1,GroupID=2的组节点2,GroupID=3的组节点3。特别要说明的是,组节点之间的包含关系是通过后继组节点来实现的,比如GroupID=1的组节点1和GroupID=3的组节点3,它们的后继组节点都是GroupID=4的组节点4,而且组节点4已经是激活状态(isEnabled=true)也就是说明,组节点1和组节点3在本组节点事件全部执行完毕后,都会触发组节点4,也就意味着组节点4是包含组节点1和组节点3的,组节点1和组节点3是组节点4的子节点。
上述内容是插件化游戏玩法设计方案中原子事件节点和组节点数据结构的详细设计,以及在Unity中对应的具体实现方式。在此基础上,图7给出了插件化游戏玩法设计方案的执行流程图,如图7所示,该执行流程具体可以包括以下步骤:
步骤S701,场景初始化。
步骤S702,组节点是否处于激活态。若组节点处于激活态,则执行步骤S703。
步骤S703,激活本组原子事件节点。
步骤S704,原子事件节点完成/回退通知本组节点。
步骤S705,组节点计数-1/+1。
步骤S706,组节点是否完成。若已经完成,则执行步骤S707。
步骤S707,是否有后继组节点。若有,则执行步骤S708;否则执行步骤S710。
步骤S708,通知后继组节点。
步骤S709,后继组节点是否激活。若激活,则执行步骤S705;否则执行步骤S703。
步骤S710,关卡结束。
在图7所示的执行流程中,首先场景初始化,检查所有处于激活态的组节点,对于处于激活态的组节点,派发事件附上组节点ID用于激活本组原子事件节点。之后在游戏的过程中,根据各个玩法的规则和具体实现,当各自的原子事件节点被触发或者回退触发时,调用对应的TriggerEvent()或UnTriggerEvent()方法通知本组节点,对应的组节点ChildCount减1或加1,如果ChildCount计数为零,则表示本组节点都已经激活完毕,本组事件全部触发结束。此时判断该组节点的PostGroupID是否为0,即是否有后继组节点:如果不为0则表示有后继组节点,判断后继组节点是否为激活状态:如果是,表示后继组节点是当前组节点的父节点,则将后继组节点的ChildCount减1,重复之前的组节点是否完成的判断步骤;如果后继组节点不是激活状态,则将后继组节点激活,重复派发激活其子节点的步骤;如果当前组节点的PostGroupID为0,表示没有后继组节点,这表示本关卡所有游戏玩法已经结束,可以结束关卡。
为了清楚的解释图7所示的执行流程,下面将结合图8所示的时序图并以图6所示的配置为例进行详细的说明。关卡开始时,遍历所有组节点,发现组节点1、2、4的IsEnabled=true,即组节点1、2、4处于激活态,则激活组节点1、2、4的子节点,也即派发对应事件激活GroupID=1、2、4的原子事件节点,也就是两个推箱子原子事件节点以及GroupID=2的消灭怪物原子事件节点。如果关卡开始时玩家直接走到迷宫目标点,由于迷宫原子事件节点对应的GroupID=5的组节点5尚未激活,不会有任何变化。按照关卡设计,玩家首先完成两个箱子推到目标点操作,即完成了两个GroupID=1的原子事件节点,每完成一次推一个箱子到目标点组节点1的ChildCount就减1,两个箱子均推到目标点后,组节点1的ChildCount=0,表示组节点1完成,派发事件通知GroupID=4的组节点4,由于组节点4已经为激活态,则对应的ChildCount减1。此时玩家完成第一波消灭怪物也就是GroupID=2的原子事件节点,完成后组节点2的ChildCount=0,通知其后继组节点3,组节点3被激活,并激活组节点3的子节点,也即激活GroupID=3的原子事件节点,在完成这波消灭怪物后,组节点3完成,通知后继组节点4,同样组节点4为激活态,ChildCount减1后为0,组节点4完成,通知后继组节点5,组节点5为未激活态,因此激活组节点5并激活组节点5的子节点,也即激活GroupID=5的迷宫原子事件节点,此时玩家再走到迷宫目标点,就可以触发迷宫结束事件,通知组节点5,组节点5的ChildCount=0,并且没有后继组节点,关卡结束。
客户端按照上述设计方案可以实现游戏玩法的组合设计,服务端则根据对应的设计信息进行校验即可,主要是用于外挂等作弊的防范。具体做法是,将客户端配置好的关卡中的组节点和原子事件节点数据导出为xml格式或其它格式的配置文件,服务端保存对应关卡配置文件,客户端在完成对应节点时向服务端上报数据,服务端根据对应关卡配置检测完成事件的上报数据是否符合当前关卡配置,防止客户端作弊。
需要说明的是,该优选实施例中的设计方案是基于Unity环境实现的,但核心的插件化游戏玩法组合设计思想可以应用到其他任意开发语言和引擎,例如开源的移动2D游戏框架Cocos2dX等。
该优选实施例具有以下优点:
灵活性高:可以非常灵活地将多种游戏玩法按设计者想法随意组合。
易于扩展:需要增加新的游戏玩法类型用于组合时,按照本设计方案的原子事件节点结构扩展新的游戏玩法类型即可。
此外,基于该优选实施例中的设计方案的统一的开发思想,即使不同的游戏玩法由不同的代码开发人员进行实现,只要统一按照本方案的设计进行扩展性的实现,可以方便的保证后期游戏玩法组合的可行性和便利性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种用于实施上述事件生成方法的事件生成装置。图9是根据本发明实施例的一种可选的事件生成装置的示意图,如图9所示,该装置可以包括:
第一获取单元92,用于获取事件生成请求,其中,所述事件生成请求用于请求生成目标事件;第二获取单元94,用于获取所述目标事件的事件描述信息,其中,所述事件描述信息至少用于指示生成所述目标事件所需的子事件以及所述子事件之间的组合关系;生成单元96,用于按照所述事件描述信息生成所述目标事件,其中,所述目标事件中包括具有所述组合关系的所述子事件。
需要说明的是,该实施例中的第一获取单元92可以用于执行本申请实施例1中的步骤S202,该实施例中的第二获取单元94可以用于执行本申请实施例1中的步骤S204,该实施例中的生成单元96可以用于执行本申请实施例1中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,生成单元96还可以用于从子事件集合中选择所需的子事件,其中,子事件集合中包括子事件;将子事件按照组合关系进行组合,得到目标事件。
作为一种可选的实施例,生成单元96还可以用于按照事件描述信息确定出子事件的执行次数N,以及确定出组合关系用于指示按顺序执行N个相同的子事件,其中,N大于等于1;将N个相同的子事件按照组合关系进行组合,得到目标事件。
作为一种可选的实施例,子事件包括:第一子事件和第二子事件,第一子事件的执行次数为N1,第二子事件的执行次数为N2,N1和N2大于等于1,其中,生成单元96还可以用于确定出组合关系用于指示按顺序执行N1个相同的第一子事件,按顺序执行N2个相同的第二子事件,其中,第一子事件和第二子事件之间具有预定的执行依赖关系,或者,不设置有执行依赖关系。
作为一种可选的实施例,第一子事件和第二子事件之间具有预定的执行依赖关系包括:在N1个相同的第一子事件都执行完之后,才允许执行第二子事件;或者在N2个相同的第二子事件都执行完之后,才允许执行第一子事件。
作为一种可选的实施例,第二获取单元94还可以用于获取第一事件描述信息,其中,第一事件描述信息至少用于指示子事件以及子事件所属的组合事件,目标事件包括至少一个组合事件,组合事件包括至少一个子事件;获取第二事件描述信息,其中,第二事件描述信息至少用于指示至少一个组合事件的执行依赖关系,事件描述信息包括第一事件描述信息和第二事件描述信息。
作为一种可选的实施例,生成单元96还可以用于按照第一事件描述信息对子事件执行第一配置操作,其中,第一配置操作用于指示子事件所属的组合事件;按照第二事件描述信息对至少一个组合事件执行第二配置操作,其中,第二配置操作用于指示至少一个组合事件的执行依赖关系;根据第一配置操作和第二配置操作生成目标事件。
作为一种可选的实施例,该事件生成装置还可以包括:执行单元,用于在按照事件描述信息生成目标事件之后,遍历至少一个组合事件执行以下步骤,其中,组合事件在执行步骤时被标记为当前组合事件:检测当前组合事件是否处于激活状态;在检测到当前组合事件处于激活状态的情况下,执行当前组合事件中所包括的至少一个子事件;检测是否存在后继组合事件,其中,后继组合事件为在当前组合事件执行完以后执行的组合事件;在检测到存在后继组合事件的情况下,将后继组合事件作为当前组合事件。
可选地,在检测到当前组合事件处于激活状态的情况下,执行当前组合事件中所包括的至少一个子事件包括:设置当前组合事件中所包括的至少一个子事件处于激活状态;每执行一个子事件,则控制第二事件描述信息中用于计数的字段开始计数;在字段的计数结果达到预定值的情况下,确定当前组合事件中所包括的至少一个子事件执行完成。
可选地,检测是否存在后继组合事件包括:检测至少一个组合事件中是否存在标识号与当前组合事件的后继标识号相一致的组合事件,其中,后继标识号用于指示在执行完当前组合事件之后需要执行的组合事件;其中,在检测到至少一个组合事件中存在标识号与当前组合事件的后继标识号相一致的组合事件的情况下,确定存在当前组合事件的后继组合事件,在检测到至少一个组合事件中不存在标识号与当前组合事件的后继标识号相一致的组合事件的情况下,确定不存在当前组合事件的后继组合事件。
作为一种可选的实施例,该事件生成装置还可以包括:确定单元,用于在按照事件描述信息生成目标事件之后,在检测到子事件按照组合关系执行成功的情况下,确定目标事件执行成功。
可选地,确定单元可以通过以下步骤检测子事件按照组合关系是否执行成功:将执行目标事件后得到的事件结果信息与事件描述信息进行匹配,其中,在事件结果信息与事件描述信息相匹配的情况下,确定子事件按照组合关系执行成功,在事件结果信息与事件描述信息不相匹配的情况下,确定子事件按照组合关系执行失败。
作为一种可选的实施例,第一事件描述信息包括以下信息中的至少之一:用于指示子事件所属的组合事件的标识号信息;用于指示子事件是否支持回退操作的信息;用于指示子事件是否处于激活状态的信息;用于指示子事件是否被触发的信息;用于指示子事件被触发时所执行的操作的信息;用于指示子事件被触发回退时所执行的操作的信息。
作为一种可选的实施例,第二事件描述信息包括以下信息中的至少之一:用于标识组合事件的标识号的信息;用于标识组合事件的后继组合事件的标识号的信息;用于指示组合事件中所包括的子事件的个数的信息;用于指示组合事件是否处于激活状态的信息;用于指示触发组合事件的后继组合事件为激活态的信息。
通过上述模块,可以解决了相关技术中通过设计开发人员手动编写代码生成事件,导致事件生成效率低的技术问题,进而达到提高事件生成效率的技术效果。
根据本发明实施例的又一个方面,还提供了一种用于实施上述事件生成方法的电子装置。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述电子装置可以执行事件生成方法中以下步骤的程序代码:获取事件生成请求,其中,事件生成请求用于请求生成目标事件;获取目标事件的事件描述信息,其中,事件描述信息至少用于指示生成目标事件所需的子事件以及子事件之间的组合关系;按照事件描述信息生成目标事件,其中,目标事件中包括具有组合关系的子事件。
可选地,图10是根据本发明实施例的一种电子装置的结构框图,如图10所示,该电子装置可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205,如图10所示,该电子装置还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的事件生成方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的事件生成方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以调用存储器203存储的应用程序,以执行下述步骤:获取事件生成请求,其中,事件生成请求用于请求生成目标事件;获取目标事件的事件描述信息,其中,事件描述信息至少用于指示生成目标事件所需的子事件以及子事件之间的组合关系;按照事件描述信息生成目标事件,其中,目标事件中包括具有组合关系的子事件。
处理器201还用于执行下述步骤:从子事件集合中选择所需的子事件,其中,子事件集合中包括子事件;将子事件按照组合关系进行组合,得到目标事件。
处理器201还用于执行下述步骤:按照事件描述信息确定出子事件的执行次数N,以及确定出组合关系用于指示按顺序执行N个相同的子事件,其中,N大于等于1;将N个相同的子事件按照组合关系进行组合,得到目标事件。
处理器201还用于执行下述步骤:确定出组合关系用于指示按顺序执行N1个相同的第一子事件,按顺序执行N2个相同的第二子事件,其中,第一子事件和第二子事件之间具有预定的执行依赖关系,或者,不设置有执行依赖关系,其中,子事件包括:第一子事件和第二子事件,第一子事件的执行次数为N1,第二子事件的执行次数为N2,N1和N2大于等于1。
处理器201还用于执行下述步骤:获取第一事件描述信息,其中,第一事件描述信息至少用于指示子事件以及子事件所属的组合事件,目标事件包括至少一个组合事件,组合事件包括至少一个子事件;获取第二事件描述信息,其中,第二事件描述信息至少用于指示至少一个组合事件的执行依赖关系,事件描述信息包括第一事件描述信息和第二事件描述信息。
处理器201还用于执行下述步骤:按照第一事件描述信息对子事件执行第一配置操作,其中,第一配置操作用于指示子事件所属的组合事件;按照第二事件描述信息对至少一个组合事件执行第二配置操作,其中,第二配置操作用于指示至少一个组合事件的执行依赖关系;根据第一配置操作和第二配置操作生成目标事件。
处理器201还用于执行下述步骤:在按照事件描述信息生成目标事件之后,遍历至少一个组合事件执行以下步骤,其中,组合事件在执行步骤时被标记为当前组合事件:检测当前组合事件是否处于激活状态;在检测到当前组合事件处于激活状态的情况下,执行当前组合事件中所包括的至少一个子事件;检测是否存在后继组合事件,其中,后继组合事件为在当前组合事件执行完以后执行的组合事件;在检测到存在后继组合事件的情况下,将后继组合事件作为当前组合事件。
处理器201还用于执行下述步骤:设置当前组合事件中所包括的至少一个子事件处于激活状态;每执行一个子事件,则控制第二事件描述信息中用于计数的字段开始计数;在字段的计数结果达到预定值的情况下,确定当前组合事件中所包括的至少一个子事件执行完成。
处理器201还用于执行下述步骤:检测至少一个组合事件中是否存在标识号与当前组合事件的后继标识号相一致的组合事件,其中,后继标识号用于指示在执行完当前组合事件之后需要执行的组合事件;其中,在检测到至少一个组合事件中存在标识号与当前组合事件的后继标识号相一致的组合事件的情况下,确定存在当前组合事件的后继组合事件,在检测到至少一个组合事件中不存在标识号与当前组合事件的后继标识号相一致的组合事件的情况下,确定不存在当前组合事件的后继组合事件。
处理器201还用于执行下述步骤:在按照事件描述信息生成目标事件之后,在检测到子事件按照组合关系执行成功的情况下,确定目标事件执行成功。
处理器201还用于执行下述步骤:将执行目标事件后得到的事件结果信息与事件描述信息进行匹配,其中,在事件结果信息与事件描述信息相匹配的情况下,确定子事件按照组合关系执行成功,在事件结果信息与事件描述信息不相匹配的情况下,确定子事件按照组合关系执行失败。
采用本发明实施例,提供了一种事件生成方案,通过获取事件生成请求,其中,所述事件生成请求用于请求生成目标事件;获取所述目标事件的事件描述信息,其中,所述事件描述信息至少用于指示生成所述目标事件所需的子事件以及所述子事件之间的组合关系;按照所述事件描述信息生成所述目标事件,其中,所述目标事件中包括具有所述组合关系的所述子事件,达到了快速生成事件的目的,从而实现了提高事件生成效率的技术效果,进而解决了相关技术中通过设计开发人员手动编写代码生成事件,导致事件生成效率低的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
可选地,图10所示的电子装置的可以为图1中所示的终端104,终端104也可以包括图10所示电子装置所包括的内部结构。
可选地,图10所示的电子装置也可以包括图9所示的事件生成装置,或者图10所示的电子装置中的处理器201可以包括图9所示的事件生成装置。
根据本发明实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行事件生成方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取事件生成请求,其中,事件生成请求用于请求生成目标事件;
S2,获取目标事件的事件描述信息,其中,事件描述信息至少用于指示生成目标事件所需的子事件以及子事件之间的组合关系;
S3,按照事件描述信息生成目标事件,其中,目标事件中包括具有组合关系的子事件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:从子事件集合中选择所需的子事件,其中,子事件集合中包括子事件;将子事件按照组合关系进行组合,得到目标事件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:按照事件描述信息确定出子事件的执行次数N,以及确定出组合关系用于指示按顺序执行N个相同的子事件,其中,N大于等于1;将N个相同的子事件按照组合关系进行组合,得到目标事件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:确定出组合关系用于指示按顺序执行N1个相同的第一子事件,按顺序执行N2个相同的第二子事件,其中,第一子事件和第二子事件之间具有预定的执行依赖关系,或者,不设置有执行依赖关系,其中,子事件包括:第一子事件和第二子事件,第一子事件的执行次数为N1,第二子事件的执行次数为N2,N1和N2大于等于1。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取第一事件描述信息,其中,第一事件描述信息至少用于指示子事件以及子事件所属的组合事件,目标事件包括至少一个组合事件,组合事件包括至少一个子事件;获取第二事件描述信息,其中,第二事件描述信息至少用于指示至少一个组合事件的执行依赖关系,事件描述信息包括第一事件描述信息和第二事件描述信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:按照第一事件描述信息对子事件执行第一配置操作,其中,第一配置操作用于指示子事件所属的组合事件;按照第二事件描述信息对至少一个组合事件执行第二配置操作,其中,第二配置操作用于指示至少一个组合事件的执行依赖关系;根据第一配置操作和第二配置操作生成目标事件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在按照事件描述信息生成目标事件之后,遍历至少一个组合事件执行以下步骤,其中,组合事件在执行步骤时被标记为当前组合事件:检测当前组合事件是否处于激活状态;在检测到当前组合事件处于激活状态的情况下,执行当前组合事件中所包括的至少一个子事件;检测是否存在后继组合事件,其中,后继组合事件为在当前组合事件执行完以后执行的组合事件;在检测到存在后继组合事件的情况下,将后继组合事件作为当前组合事件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:设置当前组合事件中所包括的至少一个子事件处于激活状态;每执行一个子事件,则控制第二事件描述信息中用于计数的字段开始计数;在字段的计数结果达到预定值的情况下,确定当前组合事件中所包括的至少一个子事件执行完成。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:检测至少一个组合事件中是否存在标识号与当前组合事件的后继标识号相一致的组合事件,其中,后继标识号用于指示在执行完当前组合事件之后需要执行的组合事件;其中,在检测到至少一个组合事件中存在标识号与当前组合事件的后继标识号相一致的组合事件的情况下,确定存在当前组合事件的后继组合事件,在检测到至少一个组合事件中不存在标识号与当前组合事件的后继标识号相一致的组合事件的情况下,确定不存在当前组合事件的后继组合事件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在按照事件描述信息生成目标事件之后,在检测到子事件按照组合关系执行成功的情况下,确定目标事件执行成功。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:将执行目标事件后得到的事件结果信息与事件描述信息进行匹配,其中,在事件结果信息与事件描述信息相匹配的情况下,确定子事件按照组合关系执行成功,在事件结果信息与事件描述信息不相匹配的情况下,确定子事件按照组合关系执行失败。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (17)

1.一种事件生成方法,其特征在于,包括:
获取事件生成请求,其中,所述事件生成请求用于请求生成目标事件;
获取所述目标事件的事件描述信息,其中,所述事件描述信息至少用于指示生成所述目标事件所需的子事件以及所述子事件之间的组合关系;
按照所述事件描述信息生成所述目标事件,其中,所述目标事件中包括具有所述组合关系的所述子事件。
2.根据权利要求1所述的方法,其特征在于,所述按照所述事件描述信息生成所述目标事件包括:
从子事件集合中选择所需的所述子事件,其中,所述子事件集合中包括所述子事件;
将所述子事件按照所述组合关系进行组合,得到所述目标事件。
3.根据权利要求1所述的方法,其特征在于,所述按照所述事件描述信息生成所述目标事件包括:
按照所述事件描述信息确定出所述子事件的执行次数N,以及确定出所述组合关系用于指示按顺序执行N个相同的所述子事件,其中,N大于等于1;
将所述N个相同的所述子事件按照所述组合关系进行组合,得到所述目标事件。
4.根据权利要求3所述的方法,其特征在于,所述子事件包括:第一子事件和第二子事件,所述第一子事件的执行次数为N1,所述第二子事件的执行次数为N2,N1和N2大于等于1,其中,确定出所述组合关系用于指示按顺序执行N个相同的所述子事件包括:
确定出所述组合关系用于指示按顺序执行N1个相同的所述第一子事件,按顺序执行N2个相同的所述第二子事件,其中,所述第一子事件和所述第二子事件之间具有预定的执行依赖关系,或者,不设置有所述执行依赖关系。
5.根据权利要求4所述的方法,其特征在于,所述第一子事件和所述第二子事件之间具有预定的执行依赖关系包括:
在所述N1个相同的所述第一子事件都执行完之后,才允许执行所述第二子事件;或者
在所述N2个相同的所述第二子事件都执行完之后,才允许执行所述第一子事件。
6.根据权利要求1所述的方法,其特征在于,所述获取所述目标事件的事件描述信息包括:
获取第一事件描述信息,其中,所述第一事件描述信息至少用于指示所述子事件以及所述子事件所属的组合事件,所述目标事件包括至少一个所述组合事件,所述组合事件包括至少一个所述子事件;
获取第二事件描述信息,其中,所述第二事件描述信息至少用于指示所述至少一个所述组合事件的执行依赖关系,所述事件描述信息包括所述第一事件描述信息和所述第二事件描述信息。
7.根据权利要求6所述的方法,其特征在于,所述按照所述事件描述信息生成所述目标事件包括:
按照所述第一事件描述信息对所述子事件执行第一配置操作,其中,所述第一配置操作用于指示所述子事件所属的组合事件;
按照所述第二事件描述信息对所述至少一个所述组合事件执行第二配置操作,其中,所述第二配置操作用于指示所述至少一个所述组合事件的执行依赖关系;
根据所述第一配置操作和所述第二配置操作生成所述目标事件。
8.根据权利要求6所述的方法,其特征在于,在所述按照所述事件描述信息生成所述目标事件之后,所述方法还包括:
遍历所述至少一个所述组合事件执行以下步骤,其中,所述组合事件在执行所述步骤时被标记为当前组合事件:
检测所述当前组合事件是否处于激活状态;
在检测到所述当前组合事件处于激活状态的情况下,执行所述当前组合事件中所包括的所述至少一个所述子事件;
检测是否存在后继组合事件,其中,所述后继组合事件为在所述当前组合事件执行完以后执行的组合事件;
在检测到存在所述后继组合事件的情况下,将所述后继组合事件作为所述当前组合事件。
9.根据权利要求8所述的方法,其特征在于,所述在检测到所述当前组合事件处于激活状态的情况下,执行所述当前组合事件中所包括的所述至少一个所述子事件包括:
设置所述当前组合事件中所包括的所述至少一个所述子事件处于激活状态;
每执行一个所述子事件,则控制所述第二事件描述信息中用于计数的字段开始计数;
在所述字段的计数结果达到预定值的情况下,确定所述当前组合事件中所包括的所述至少一个所述子事件执行完成。
10.根据权利要求8所述的方法,其特征在于,所述检测是否存在后继组合事件包括:
检测所述至少一个所述组合事件中是否存在标识号与所述当前组合事件的后继标识号相一致的组合事件,其中,所述后继标识号用于指示在执行完所述当前组合事件之后需要执行的组合事件;
其中,在检测到所述至少一个所述组合事件中存在标识号与所述当前组合事件的后继标识号相一致的组合事件的情况下,确定存在所述当前组合事件的所述后继组合事件,在检测到所述至少一个所述组合事件中不存在标识号与所述当前组合事件的后继标识号相一致的组合事件的情况下,确定不存在所述当前组合事件的所述后继组合事件。
11.根据权利要求1所述的方法,其特征在于,在所述按照所述事件描述信息生成所述目标事件之后,所述方法还包括:
在检测到所述子事件按照所述组合关系执行成功的情况下,确定所述目标事件执行成功。
12.根据权利要求11所述的方法,其特征在于,通过以下步骤检测所述子事件按照所述组合关系是否执行成功:
将执行所述目标事件后得到的事件结果信息与所述事件描述信息进行匹配,其中,在所述事件结果信息与所述事件描述信息相匹配的情况下,确定所述子事件按照所述组合关系执行成功,在所述事件结果信息与所述事件描述信息不相匹配的情况下,确定所述子事件按照所述组合关系执行失败。
13.根据权利要求6至12中任一项所述的方法,其特征在于,所述第一事件描述信息包括以下信息中的至少之一:
用于指示所述子事件所属的所述组合事件的标识号信息;
用于指示所述子事件是否支持回退操作的信息;
用于指示所述子事件是否处于激活状态的信息;
用于指示所述子事件是否被触发的信息;
用于指示所述子事件被触发时所执行的操作的信息;
用于指示所述子事件被触发回退时所执行的操作的信息。
14.根据权利要求6至12中任一项所述的方法,其特征在于,所述第二事件描述信息包括以下信息中的至少之一:
用于标识所述组合事件的标识号的信息;
用于标识所述组合事件的所述后继组合事件的标识号的信息;
用于指示所述组合事件中所包括的所述子事件的个数的信息;
用于指示所述组合事件是否处于激活状态的信息;
用于指示触发所述组合事件的所述后继组合事件为激活态的信息。
15.一种事件生成装置,其特征在于,包括:
第一获取单元,用于获取事件生成请求,其中,所述事件生成请求用于请求生成目标事件;
第二获取单元,用于获取所述目标事件的事件描述信息,其中,所述事件描述信息至少用于指示生成所述目标事件所需的子事件以及所述子事件之间的组合关系;
生成单元,用于按照所述事件描述信息生成所述目标事件,其中,所述目标事件中包括具有所述组合关系的所述子事件。
16.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至14任一项中所述的方法。
17.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行所述权利要求1至14任一项中所述的方法。
CN201810306732.1A 2018-04-08 2018-04-08 事件生成方法和装置、存储介质以及电子装置 Pending CN110339571A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810306732.1A CN110339571A (zh) 2018-04-08 2018-04-08 事件生成方法和装置、存储介质以及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810306732.1A CN110339571A (zh) 2018-04-08 2018-04-08 事件生成方法和装置、存储介质以及电子装置

Publications (1)

Publication Number Publication Date
CN110339571A true CN110339571A (zh) 2019-10-18

Family

ID=68173233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810306732.1A Pending CN110339571A (zh) 2018-04-08 2018-04-08 事件生成方法和装置、存储介质以及电子装置

Country Status (1)

Country Link
CN (1) CN110339571A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111054077A (zh) * 2019-11-28 2020-04-24 腾讯科技(深圳)有限公司 管理游戏玩法的方法、装置、电子设备及存储介质
CN111221525A (zh) * 2020-01-09 2020-06-02 北京金山安全软件有限公司 一种脚本代码的生成方法、装置、电子设备及存储介质
CN111617486A (zh) * 2020-05-12 2020-09-04 杭州非奇科技股份有限公司 一种游戏关卡编辑方法和编辑器
CN112612580A (zh) * 2020-11-25 2021-04-06 北京思特奇信息技术股份有限公司 一种组合事件触发方法及触发系统
CN113360221A (zh) * 2020-03-04 2021-09-07 北京字节跳动网络技术有限公司 信息处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598888A (zh) * 2003-08-20 2005-03-23 索尼株式会社 用于处理信息的监控系统、方法和设备以及存储介质和程序
CN101957671A (zh) * 2009-07-14 2011-01-26 英属维京群岛商速位互动股份有限公司 根据动作以产生输入事件的动作输入系统及其操作方法
CN104933298A (zh) * 2015-06-01 2015-09-23 广东工业大学 一种面向信息物理融合系统的多元组复杂事件组合方法
CN107168776A (zh) * 2017-05-16 2017-09-15 广州视源电子科技股份有限公司 一种事件统计方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598888A (zh) * 2003-08-20 2005-03-23 索尼株式会社 用于处理信息的监控系统、方法和设备以及存储介质和程序
CN101957671A (zh) * 2009-07-14 2011-01-26 英属维京群岛商速位互动股份有限公司 根据动作以产生输入事件的动作输入系统及其操作方法
CN104933298A (zh) * 2015-06-01 2015-09-23 广东工业大学 一种面向信息物理融合系统的多元组复杂事件组合方法
CN107168776A (zh) * 2017-05-16 2017-09-15 广州视源电子科技股份有限公司 一种事件统计方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
包海江、陈朝: "《户外拓展精英训练营——大学生素质拓展训练指导教程》", 31 July 2014 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111054077A (zh) * 2019-11-28 2020-04-24 腾讯科技(深圳)有限公司 管理游戏玩法的方法、装置、电子设备及存储介质
CN111221525A (zh) * 2020-01-09 2020-06-02 北京金山安全软件有限公司 一种脚本代码的生成方法、装置、电子设备及存储介质
CN113360221A (zh) * 2020-03-04 2021-09-07 北京字节跳动网络技术有限公司 信息处理方法及装置
CN111617486A (zh) * 2020-05-12 2020-09-04 杭州非奇科技股份有限公司 一种游戏关卡编辑方法和编辑器
CN112612580A (zh) * 2020-11-25 2021-04-06 北京思特奇信息技术股份有限公司 一种组合事件触发方法及触发系统

Similar Documents

Publication Publication Date Title
CN110339571A (zh) 事件生成方法和装置、存储介质以及电子装置
CN109032691A (zh) 一种小程序运行方法、装置及存储介质
US8206222B2 (en) Entertainment system for performing human intelligence tasks
CN110347596A (zh) 一种测试方法、装置、系统、电子设备及介质
CN107479699A (zh) 虚拟现实交互方法、装置及系统
SA114360073B1 (ar) تحديد النمط السلوكي للذكاء الاصطناعي
CN110134375B (zh) 游戏角色行为的控制方法、装置及可读存储介质
CN110124307A (zh) 操作控制方法和装置、存储介质及电子装置
CN108154197A (zh) 实现虚拟场景中图像标注验证的方法及装置
CN106339302B (zh) 客户端的测试方法和装置
CN107391219A (zh) 函数编译方法和装置
CN108876081A (zh) 虚拟房间分配方法、装置、存储介质及处理器
CN111773690B (zh) 任务的处理方法和装置、存储介质、电子装置
CN110334030A (zh) 应用测试方法、装置、终端以及计算机可读存储介质
CN109992515A (zh) 测试方法及装置、电子设备
CN106257507A (zh) 用户行为的风险评估方法及装置
CN108762726B (zh) 基础框架开发平台及通过平台设计游戏的方法
CN108549594B (zh) 确定用户流失原因的方法及装置
CN110781084B (zh) 卡顿识别参数确定方法和装置、存储介质及电子装置
CN105610698B (zh) 事件结果的处理方法和装置
CN108347531A (zh) 求助方法、求助装置、电子设备及计算机可读存储介质
US8676724B2 (en) Training with complex event processing engine to identify semantic meaning of virtual world object state changes
CN112084044A (zh) 系统中事件处理方法及相关装置
Dastani et al. The second contest on multi-agent systems based on computational logic
CN108650217B (zh) 动作状态的同步方法、装置、存储介质及电子装置

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