CN113491879A - 一种创建动态触发器的方法和装置 - Google Patents

一种创建动态触发器的方法和装置 Download PDF

Info

Publication number
CN113491879A
CN113491879A CN202010271272.0A CN202010271272A CN113491879A CN 113491879 A CN113491879 A CN 113491879A CN 202010271272 A CN202010271272 A CN 202010271272A CN 113491879 A CN113491879 A CN 113491879A
Authority
CN
China
Prior art keywords
trigger
data
template
node
dynamic
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.)
Granted
Application number
CN202010271272.0A
Other languages
English (en)
Other versions
CN113491879B (zh
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010271272.0A priority Critical patent/CN113491879B/zh
Publication of CN113491879A publication Critical patent/CN113491879A/zh
Application granted granted Critical
Publication of CN113491879B publication Critical patent/CN113491879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • A63F13/63Generating 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 by the player, e.g. authoring using a level editor
    • 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
    • A63F2300/6018Methods 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 where the game content is authored by the player, e.g. level editor or by game device at runtime, e.g. level is created from music data on CD

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种创建动态触发器的方法和装置,根据用户的编辑操作生成针对动态触发器的模板数据;根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;当监听到所述静态触发器的事件发生时,运行时复制所述触发器创建结点中的模板数据得到目标数据;根据所述目标数据生成新的触发器。运行时复制使得任意事件结点、条件结点、动作结点及参数,都可支持动态创建与组装,从而构建生成新的触发器,编辑器提供了更灵活的玩法编辑功能,可以大幅度降低冗余的静态触发器数量。

Description

一种创建动态触发器的方法和装置
技术领域
本发明涉及游戏技术领域,特别是涉及一种创建动态触发器的方法和一种创建动态触发器的装置。
背景技术
游戏编辑器是提供给玩家自定义副本玩法的一系列编辑工具集合,其中最核心的是触发器编辑工具,在编辑器中触发器是指由事件、条件以及动作所组合以驱动自定义玩法的游戏逻辑,具体理解为游戏中某事件发生时,判断发生时对应的一系列条件是否满足,满足条件时则执行相应的一系列动作。
触发器可以分为静态触发器和动态触发器两种。其中,静态触发器是指在编辑模式下能直接指定的事件、条件与动作,如场景中指定单位进入指定区域事件发生,检测条件并在条件满足时执行动作,静态触发器在整局游戏开始时完成事件注册并开始监听事件的发生。动态触发器则不局限于编辑模式所能指定的事件、条件与动作,如给在游戏运行一段时间后才会在场景中动态创建的单位注册进入某个变量所对应区域的事件,这个单位是初始不存在的,变量的值也是不断变化的,需要在游戏运行中才能获取,由于这些在编辑状态下是不可见,通过静态触发器是难以实现的,而动态触发器通过在游戏运行过程中任意时刻动态生成触发器,并注册事件,给用户提供更为灵活的玩法编辑。
目前,市面上提供编辑器来自定义玩法的游戏产品不多,其中提供触发器功能深度定义游戏逻辑的则更少。在PC平台有代表性的编辑工具主要有以下两种,其中,一种编辑工具中触发器编辑模块包含了事件、条件、动作结点以供玩家编写静态触发器,对游戏中动态创建触发器的支持较为简单,从创建初始空触发器到有限制绑定一些事件、条件、动作,需要手动添加或者必要时直接改导出的Jass脚本;另一种编辑工具中则是完全通过Lua脚本编写游戏逻辑,自由度更高,不过也要求地图作者有较好的Lua语言编程基础。
上述的两种编辑工具主要有如下缺点:
其中,第一种编辑工具,通过空触发器附加其他结点,触发器编辑时较为繁琐;且可以附加的事件、条件与动作有限制,不是所有事件、条件与动作能支持触发器动态创建;在实现一些功能时需要修改或嵌入Jass代码,移植到手游平台上则会使编辑困难度大幅度增加,体验上特别笨重。而第二种编辑工具,通过Lua代码编写动态触发器,对于移动端而言,这种方式可行性不高。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种创建动态触发器的方法和相应的一种创建动态触发器的装置。
为了解决上述问题,本发明实施例公开了一种创建动态触发器的方法,包括:
根据用户的编辑操作生成针对动态触发器的模板数据;
根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
当监听到所述静态触发器的事件发生时,运行时复制所述触发器创建结点中的模板数据得到目标数据;
根据所述目标数据生成新的触发器。
可选地,所述根据用户的编辑操作生成针对动态触发器的模板数据,包括:
在编辑模式阶段,根据用户的编辑操作生成针对动态触发器的模板数据。
可选地,所述根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器,包括:
在运行模式开始阶段,初始化所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
注册所述静态触发器的事件,并监听所述静态触发器的事件。
可选地,所述触发器创建结点包括模板结点和模板参数;所述运行时复制所述触发器创建结点中的指定数据得到目标数据,包括:
运行时复制所述模板结点中预设属性的数据得到目标结点数据;
运行时复制所述模板参数中预设属性的数据得到目标参数数据。
可选地,所述模板结点中的结点之间具有嵌套关系;所述模板参数中的参数之间具有嵌套关系;
所述运行时复制所述触发器创建结点中的指定数据得到目标数据,还包括:
运行时复制所述模板结点中结点之间的嵌套关系,得到目标结点数据之间的嵌套关系;
运行时复制所述模板参数中参数之间的嵌套关系,得到目标参数数据之间的嵌套关系。
可选地,所述运行时复制所述触发器创建结点中的指定数据得到目标数据,还包括:
获取所述静态触发器的事件发生时,所述模板结点的状态和所述模板参数的值;
运行时复制所述模板结点的状态得到目标结点的状态,以及运行时复制所述模板参数的值得到目标参数的值。
可选地,所述方法还包括:
注册所述新的触发器;
监听注册后的所述新的触发器。
本发明实施例还公开了一种创建动态触发器的装置,包括:
模板数据编辑模块,用于根据用户的编辑操作生成针对动态触发器的模板数据;
静态触发器生成模块,用于根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
数据复制模块,用于当监听到所述静态触发器的事件发生时,运行时复制所述触发器创建结点中的模板数据得到目标数据;
触发器生成模块,用于根据所述目标数据生成新的触发器。
本发明实施例还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本发明实施例所述的一个或多个的方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的一个或多个的方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,通过根据用户的编辑操作生成针对动态触发器的模板数据,根据针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器,当监听到静态触发器的事件发生时,运行时复制触发器创建结点中的模板数据得到目标数据,根据目标数据生成新的触发器。运行时复制使得任意事件结点、条件结点、动作结点及参数,都可支持动态创建与组装,从而构建生成新的触发器,编辑器提供了更灵活的玩法编辑功能,可以大幅度降低冗余的静态触发器数量。
附图说明
图1是本发明的一种创建动态触发器的方法实施例的步骤流程图;
图2是本发明实施例的一种组装数据流程框图;
图3A是本发明实施例中运行时复制函数所含成员属性及方法属性的示意图1;
图3B是本发明实施例中运行时复制函数所含成员属性及方法属性的示意图2;
图4是本发明实施例的一种编辑针对动态触发器的模板数据的示意图;
图5是本发明实施例的一种图4对应的效果示意图;
图6是本发明的一种创建动态触发器的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种创建动态触发器的方法实施例的结构框图,具体可以包括如下模块:
步骤101,根据用户的编辑操作生成针对动态触发器的模板数据;
其中,模板数据可以包括任意事件结点数据、条件结点数据、动作结点数据和参数数据,该模板数据用于在游戏运行时,动态创建触发器,生成新的触发器,该在游戏运行任意时刻生成的新的触发器,即为动态触发器。模板数据可以在游戏编辑阶段指定。
在本发明实施例中,可以根据编辑器用户(即游戏玩家)的编辑操作生成针对动态触发器的模板数据。在编辑完成模板数据之后,对模板数据进行持久化操作,如,通过output_persistent_dict()函数来持久化模板数据,模板数据的文件可以以JSON格式或XML格式存储,以便在编辑模式和运行模式两个阶段共享模板数据,编辑模式结束的时候存储到文件,运行模式开始阶段从文件中恢复模板数据。
步骤102,根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
在本发明实施例中,可以根据针对动态触发器的模板数据,创建包含触发器创建结点的静态触发器。其中,触发器创建结点可以作为静态触发器的一个动作结点。
在触发器创建结点中可以包含用于创建触发器的相关结点(事件、条件和动作)及参数,可以初始化这些用于创建触发器的相关结点及参数为模板结点、模板参数。
步骤103,当监听到所述静态触发器的事件发生时,运行时复制所述触发器创建结点中的模板数据得到目标数据;
在创建静态触发器之后,可以注册该静态触发器的事件,并开始监听该静态触发器的事件,以在静态触发器的事件发生时,执行触发器创建结点来创建新的触发器。
运行时复制即是对模板数据进行运行时构造数据复制,所复制的数据能够重新构造成,与模板结点或模板参数状态相同或值相同的新的结点(事件、条件和动作)或新的参数。具体的,在执行触发器创建结点时,可以调用运行时复制函数来复制触发器创建结点中的模板数据得到目标数据,该运行时复制函数可以包括结点运行时复制函数:generate_running_persistent_dict(),或,参数运行时复制函数:generate_running_copy_dict()。
目标数据可以是用于构造新的触发器初始数据,在得到目标数据之后,可以给目标数据分配唯一性标识符,以保证每一组目标数据的唯一性,从而保证根据目标数据生成的新的触发器的唯一性。其中,该唯一性标识符可以由模板结点或模板参数的标识符混合指定后缀生成。
步骤104,根据所述目标数据生成新的触发器。
目标数据可以包括目标结点数据和目标参数数据。其中,目标结点数据可以包括目标事件数据、目标条件数据和目标动作数据。每一个目标结点数据还可以包括一个或多个子结点数据,每个目标参数数据也可以包括一个或多个子参数数据。
在本发明的一种优选实施例中,所述步骤101可以包括如下子步骤:
在编辑模式阶段,根据用户的编辑操作生成针对动态触发器的模板数据。
在本发明实施例中,创建触发器的过程可以分为两个阶段,分别是编辑模式阶段和运行模式阶段。
在编辑模式阶段,用户可以在游戏所提供的图形用户界面上编辑并输入针对所需要创建的动态触发器的模板数据,运行游戏应用的终端可以检测到作用于终端上的操作,确定针对动态触发器的模板数据,游戏应用可以通过终端所提供的接口获取到针对动态触发器的模板数据。需要说明的是,在编辑针对动态触发器的模板数据时,由于创建的动态触发器本身可以作为一个动作结点,任意事件、条件或动作结点既可以在静态触发器指定中,也可以在创建的动态触发器结点下指定,自由搭配,即创建的动态触发器结点下的动作结点序列里可以继续包含创建的动态触发器的结点动作,因此,针对动态触发器的模板数据可以包含父结点的数据和子结点的数据,及对应的参数。
此外,在编辑模式阶段,可以对针对动态触发器的模板数据进行持久化操作(output_persistent_dict),输出文件以JSON格式或XML格式存储。
在本发明的一种优选实施例中,所述步骤102可以包括如下子步骤:
在运行模式开始阶段,初始化所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;注册所述静态触发器的事件,并监听所述静态触发器的事件。
在运行模式开始阶段,可以对针对动态触发器的模板数据进行初始化,生成静态触发器,在该静态触发器的动作序列中包含触发器创建结点,即触发器创建结点可以作为静态触发器的动作结点。同时,与触发器创建结点相关的结点(事件、条件和动作)及参数,则可以初始化为模板结点、模板参数。在生成静态触发器之后,可以注册静态触发器的事件,并监听静态触发器的事件,以在监听到静态触发器的事件发生时,通过运行时复制触发器创建结点中的模板数据生成新的触发器。
运行时复制是指对结点及参数进行运行时构造数据复制,所复制的数据能重新构造成与源结点或源参数状态相同或值相同的新结点或新参数,其中,将要构造结点或参数的唯一性标识符,由模板结点或参数的标识符混合指定后缀生成,为了确保所复制得到的目标数据,最终能够生成所需要的动态触发器,规定模板结点或模板参数,在运行时复制时遵循如下原则:
正确性原则:即结点或参数调用运行时复制函数时,所复制的属性数据要能正确初始化成新的结点或参数。
完善性原则:即在运行时复制时,需要记录结点或参数间的嵌套关系,结点进行运行时复制时需要对子结点进行数据复制遍历,参数复制时对其所嵌套的参数进行数据复制遍历,子结点的复制数据被包含在父结点复制数据中,被嵌套参数的复制数据则与其他参数一样,由参数信息列表(param_lst)统一收集管理,参数间的嵌套关系通过参数具体的值,为被嵌套的参数唯一性标识符实现。
即时性原则,即运行时复制数据所表示的结点状态或参数值,表示运行时发生那一时刻(静态触发器的事件发生时)模板结点的状态或模板参数的值,如,在动态创建触发器开始时,模板结点此时处于隐藏状态即不生效状态,模板结点中使用的模板参数引用了一个全局单位变量,此时该变量的值为单位A,执行运行时复制会相应记录下来,采用所复制数据生成的新的触发器中,对应结点的状态会是隐藏,对应参数的值是单位A,即使动态创建触发器后,模板结点的状态从隐藏变为打开,模板参数中所引用的全局变量值已经改为单位B。
在本发明实施例中,所述触发器创建结点包括模板结点和模板参数;所述步骤103可以包括如下子步骤:
运行时复制所述模板结点中预设属性的数据得到目标结点数据;运行时复制所述模板参数中预设属性的数据得到目标参数数据。
触发器创建结点可以包括模板结点和模板参数,其中,模板结点可以包括模板事件结点、模板条件结点和模板动作结点。模板结点和模板参数可以在初始化生成包含触发器创建结点的静态触发器时初始化生成。
预设属性可以是预先设定的属性参数,例如,类名属性,状态属性,原始属性,隐藏属性,唯一标识等。为了保证复制的模板数据能够用以组装并初始化构造成动态触发器,需要保证复制预设属性的参数。
在本发明实施例中,可以通过运行时复制函数,复制模板结点中预设属性的数据得到目标结点数据,以及复制模板参数中预设属性的数据得到目标参数数据。
如下表1是本发明的一种预设属性,及预设属性的对应说明:
Figure BDA0002443234600000081
Figure BDA0002443234600000091
表1
在本发明实施例中,所述模板结点中的结点之间具有嵌套关系;所述模板参数中的参数之间具有嵌套关系;
所述步骤103还可以包括如下子步骤:
运行时复制所述模板结点中结点之间的嵌套关系,得到目标结点数据之间的嵌套关系;运行时复制所述模板参数中参数之间的嵌套关系,得到目标参数数据之间的嵌套关系。
模板结点中的结点之间具有嵌套关系;模板参数中的参数之间具有嵌套关系。模板结点中结点之间的嵌套关系在编辑针对动态触发器的模板数据时被编辑,即,各源结点数据(源事件结点数据、源条件结点数据和源动作结点数据)之间的源结点具有嵌套关系,以及各源参数数据之间的源参数具有嵌套关系,根据这些源数据得到的模板结点中的结点之间也具有嵌套关系,模板参数中的参数之间也具有嵌套关系。
在本发明实施例中,可以通过在调用运行时复制函数时,运行时复制模板结点中结点之间的嵌套关系得到目标结点数据之间的嵌套关系,运行时复制模板参数中参数之间的嵌套关系得到目标参数数据之间的嵌套关系。
在本发明实施例中,所述步骤103还可以包括如下子步骤:
获取所述静态触发器的事件发生时,所述模板结点的状态和所述模板参数的值;运行时复制所述模板结点的状态得到目标结点的状态,以及运行时复制所述模板参数的值得到目标参数的值。
在本发明实施例中,可以通过获取静态触发器的事件发生时,模板结点的状态和模板参数的值;在调用运行时复制函数时,运行时复制模板结点的状态得到目标结点的状态,以及运行时复制模板参数的值目标参数的值。
在本发明实施例中,在运行时复制模板数据之后,可以对复制得到的数据进行组装,得到目标数据。具体的,可以对目标结点数据、目标参数数据按照得到的目标结点数据之间的嵌套关系,目标参数数据之间的嵌套关系,进行组装,得到目标数据。
如图2示出了本发明实施例的一种组装数据流程框图。组装的目标数据包括:事件结点运行时复制的数据、动作结点运行时复制的数据、条件结点运行时复制的数据,和参数运行时复制得到的参数信息列表。在动作结点运行时复制的数据中,可以包括n个子结点运行时复制的数据,及子结点参数运行时复制的参数。子结点还可以包括n个子结点运行时复制的数据,及子结点参数运行时复制的参数。需要说明的是,参数在执行运行时复制时,对结点使用的参数id添加特定的后缀进行参数改造,所得到的参数信息被param_Ist参数信息列表收集。
在本发明的一种优选实施例中,所述方法还可以包括如下步骤:
注册所述新的触发器;监听注册后的所述新的触发器。
在本发明实施例中,在生成新的触发器之后,还可以注册新的触发器,并监听注册后的新的触发器。
任意事件结点、条件结点、动作结点及参数,都可支持动态创建与组装,只要其在触发器结点或参数基本功能基础上,实现运行时复制,一般情况下可以直接使用父类方法,特殊的子类结点或参数必要时对这些结点或参数进行重载。如图3A-3B示出了本发明实施例中运行时复制函数所含成员属性及方法属性的示意图,包括参数类型基类的方法及其对应的重载方法,参数基类的方法及其对应的重载方法,父类方法,事件基类的方法及其对应的重载方法,条件基类的方法,动作基类的方法及其对应的重载方法等。
如图4示出了本发明实施例的一种编辑针对动态触发器的模板数据的示意图,在图4的示例中,只有一个循环动作,该动作的子结点序列里包含了创建单位,并为该单位创建带有进入该单位范围事件的触发器,可以在游戏任意时刻运行,创建触发器动作里的所有结点为模板结点。运行效果是:为UnitType数组里的1~7索引对应的单位类型都创建一个单位,并为该单位动态创建触发器,注册进入最后创建的单位半径为15.0的圆形范围时触发动作:在最后创建的单位(局部-last_create_unit)头顶显示冒泡对话框,显示(Hi,+(触发单位的名称)),持续10.0秒,这里动作只是简单的显示冒泡对话框,打印单位的名称。如图5是图4中对应的效果示意图。
此外,本发明实施例的方案还可以通过简单扩展,以实现在运行时动态创建计时器等触发器逻辑,创建计时器的动作与创建触发器的动作一样,其所有子结点都作为模板结点,每运行一次创建计时器,也进行一次运行时复制,为新计时器动态创建新的结点,基本流程与动态创建触发器一样。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了本发明的一种创建动态触发器的装置实施例的结构框图,具体可以包括如下模块:
模板数据编辑模块601,用于根据用户的编辑操作生成针对动态触发器的模板数据;
静态触发器生成模块602,用于根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
数据复制模块603,用于当监听到所述静态触发器的事件发生时,运行时复制所述触发器创建结点中的模板数据得到目标数据;
触发器生成模块604,用于根据所述目标数据生成新的触发器。
在本发明的一种优选实施例中,所述模板数据编辑模块601可以包括如下子模块:
数据编辑子模块,用于在编辑模式阶段,根据用户的编辑操作生成针对动态触发器的模板数据。
在本发明的一种优选实施例中,所述静态触发器生成模块602可以包括如下子模块:
初始化子模块,用于在运行模式开始阶段,初始化所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
事件监听子模块,用于注册所述静态触发器的事件,并监听所述静态触发器的事件。
在本发明的一种优选实施例中,所述触发器创建结点包括模板结点和模板参数;所述数据复制模块603可以包括如下子模块:
第一复制子模块,用于运行时复制所述模板结点中预设属性的数据得到目标结点数据;
第二复制子模块,用于运行时复制所述模板参数中预设属性的数据得到目标参数数据。
在本发明的一种优选实施例中,所述模板结点中的结点之间具有嵌套关系;所述模板参数中的参数之间具有嵌套关系;
所述数据复制模块603还可以包括如下子模块:
第三复制子模块,用于运行时复制所述模板结点中结点之间的嵌套关系,得到目标结点数据之间的嵌套关系;
第四复制子模块,用于运行时复制所述模板参数中参数之间的嵌套关系,得到目标参数数据之间的嵌套关系。
在本发明的一种优选实施例中,所述数据复制模块603还可以包括如下子模块:
状态获取子模块,用于获取所述静态触发器的事件发生时,所述模板结点的状态和所述模板参数的值;
第五复制子模块,用于运行时复制所述模板结点的状态得到目标结点的状态,以及复制所述模板参数的值得到目标参数的值。
在本发明的一种优选实施例中,所述方法还包括:
触发器注册模块,用于注册所述新的触发器;
触发器监听模块,用于监听注册后的所述新的触发器。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种创建动态触发器的方法和一种创建动态触发器的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种创建动态触发器的方法,其特征在于,包括:
根据用户的编辑操作生成针对动态触发器的模板数据;
根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
当监听到所述静态触发器的事件发生时,运行时复制所述触发器创建结点中的模板数据得到目标数据;
根据所述目标数据生成新的触发器。
2.根据权利要求1所述的方法,其特征在于,所述根据用户的编辑操作生成针对动态触发器的模板数据,包括:
在编辑模式阶段,根据用户的编辑操作生成针对动态触发器的模板数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器,包括:
在运行模式开始阶段,初始化所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
注册所述静态触发器的事件,并监听所述静态触发器的事件。
4.根据权利要求1所述的方法,其特征在于,所述触发器创建结点包括模板结点和模板参数;所述运行时复制所述触发器创建结点中的指定数据得到目标数据,包括:
运行时复制所述模板结点中预设属性的数据得到目标结点数据;
运行时复制所述模板参数中预设属性的数据得到目标参数数据。
5.根据权利要求4所述的方法,其特征在于,所述模板结点中的结点之间具有嵌套关系;所述模板参数中的参数之间具有嵌套关系;
所述运行时复制所述触发器创建结点中的指定数据得到目标数据,还包括:
运行时复制所述模板结点中结点之间的嵌套关系,得到目标结点数据之间的嵌套关系;
运行时复制所述模板参数中参数之间的嵌套关系,得到目标参数数据之间的嵌套关系。
6.根据权利要求5所述的方法,其特征在于,所述运行时复制所述触发器创建结点中的指定数据得到目标数据,还包括:
获取所述静态触发器的事件发生时,所述模板结点的状态和所述模板参数的值;
运行时复制所述模板结点的状态得到目标结点的状态,以及运行时复制所述模板参数的值得到目标参数的值。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
注册所述新的触发器;
监听注册后的所述新的触发器。
8.一种创建动态触发器的装置,其特征在于,包括:
模板数据编辑模块,用于根据用户的编辑操作生成针对动态触发器的模板数据;
静态触发器生成模块,用于根据所述针对动态触发器的模板数据,生成包含触发器创建结点的静态触发器;
数据复制模块,用于当监听到所述静态触发器的事件发生时,运行时复制所述触发器创建结点中的模板数据得到目标数据;
触发器生成模块,用于根据所述目标数据生成新的触发器。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-7所述的一个或多个的方法的步骤。
10.一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7所述的一个或多个的方法的步骤。
CN202010271272.0A 2020-04-08 2020-04-08 一种创建动态触发器的方法和装置 Active CN113491879B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010271272.0A CN113491879B (zh) 2020-04-08 2020-04-08 一种创建动态触发器的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010271272.0A CN113491879B (zh) 2020-04-08 2020-04-08 一种创建动态触发器的方法和装置

Publications (2)

Publication Number Publication Date
CN113491879A true CN113491879A (zh) 2021-10-12
CN113491879B CN113491879B (zh) 2024-06-04

Family

ID=77994834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010271272.0A Active CN113491879B (zh) 2020-04-08 2020-04-08 一种创建动态触发器的方法和装置

Country Status (1)

Country Link
CN (1) CN113491879B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125371A1 (en) * 2003-12-05 2005-06-09 Bhide Manish A. Optimal use of triggers for detecting database events
CN108897868A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 基于触发器的缓存同步方法及装置、计算设备及存储介质
US20180373551A1 (en) * 2017-03-21 2018-12-27 Aaron Christensen Systems and methods for using dynamic templates to create application containers
CN110393918A (zh) * 2019-07-26 2019-11-01 网易(杭州)网络有限公司 一种游戏触发器制作的方法和装置
CN110404260A (zh) * 2019-07-31 2019-11-05 网易(杭州)网络有限公司 一种用户交互界面的响应方法和装置
CN110876850A (zh) * 2018-09-05 2020-03-13 网易(杭州)网络有限公司 一种手游编辑的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125371A1 (en) * 2003-12-05 2005-06-09 Bhide Manish A. Optimal use of triggers for detecting database events
US20180373551A1 (en) * 2017-03-21 2018-12-27 Aaron Christensen Systems and methods for using dynamic templates to create application containers
CN108897868A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 基于触发器的缓存同步方法及装置、计算设备及存储介质
CN110876850A (zh) * 2018-09-05 2020-03-13 网易(杭州)网络有限公司 一种手游编辑的方法及装置
CN110393918A (zh) * 2019-07-26 2019-11-01 网易(杭州)网络有限公司 一种游戏触发器制作的方法和装置
CN110404260A (zh) * 2019-07-31 2019-11-05 网易(杭州)网络有限公司 一种用户交互界面的响应方法和装置

Also Published As

Publication number Publication date
CN113491879B (zh) 2024-06-04

Similar Documents

Publication Publication Date Title
CN108228188B (zh) 一种视图组件处理方法、电子设备及可读存储介质
US7681176B2 (en) Generating a graphical designer application for developing graphical models
US7080350B2 (en) Method for developing Web applications, development support system and storage medium for storing programs developed according to the method
US10409564B2 (en) Recording and playback of development sessions
US8166347B2 (en) Automatic testing for dynamic applications
WO2023273118A1 (zh) 资源发布方法、装置、计算机设备及计算机可读存储介质
CN102736915A (zh) 自动程序生成装置、方法以及计算机程序
Lier et al. The cognitive interaction toolkit–improving reproducibility of robotic systems experiments
CN111459465A (zh) 一种Flutter工程文件的生成方法和装置
CN109284222B (zh) 软件单元、数据处理系统中的项目测试方法、装置及设备
Hovy et al. Towards automatic and flexible unit test generation for legacy hpc code
CN113491879B (zh) 一种创建动态触发器的方法和装置
Williamson Ant developer's handbook
Weyprecht et al. Model-driven development of simulation solution based on SysML starting with the simulation core.
Amatya Cross-platform mobile development: An alternative to native mobile development
Fields et al. Refactoring: Ruby Edition
Krunic et al. An approach to model driven development and automatic source code generation of GUI controls
Cheng et al. On Two Friends for Getting Correct Programs: Automatically Translating Event B Specifications to Recursive Algorithms in Rodin
bin Uzayr Conquering JavaScript: The Practical Handbook
Versluis Xamarin. Forms Essentials: First Steps Toward Cross-Platform Mobile Apps
Mitrović et al. Web applications development using a combination of Java and Groovy programming languages
Shankar et al. Essential Game Developer Toolkit
Bettini The EMF Parsley DSL for developing EMF applications
CN107273386B (zh) 一种数据库的XML Schema约束文件生成方法和装置
Gad et al. Working with Kivy Projects from Android Studio

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
GR01 Patent grant
GR01 Patent grant