一种编辑游戏技能的方法和装置与流程

文档序号:19784306发布日期:2020-01-24 13:21阅读:370来源:国知局
一种编辑游戏技能的方法和装置与流程

本发明涉及游戏技术领域,特别是涉及一种编辑游戏技能的方法和一种编辑游戏技能的装置。



背景技术:

通常,只要是涉及到了战斗相关内容的游戏,那必然会有一套自己的技能系统。一般而言,在设计一套技能系统时,会希望技能逻辑的代码是可高度配置的,这样就能最大化对代码进行复用。

现有技术中相关的游戏技能逻辑通常由程序员编写游戏脚本代码实现,这种方式编辑的游戏技能代码文件,不方便对代码进行复用或编辑。一方面,由于游戏内的技能种类通常会非常多,因此需要程序员为每个技能都实现一种类似技能组件的架构,将技能特殊逻辑和表现代码写在技能相应的组件里面,这就需要程序员做出冗杂重复的相关工作;另一方面,很多技能其实内在拥有相似的表现或者是逻辑功能,只在一些细微处存在不同,如果程序员通过将代码复制粘贴的形式来处理这样的情况则很容易违反了软件工程上的复用原则,但是一旦程序员想要复用相关逻辑代码则需要将之前的技能组件也要做相应的调整,费时费力。如图1示出了一种技能组件文件的示意图,在图1中的数字代表的是组件文件的编号,例如,“skillcomp_10027.py”表示该文件是编号为10027的组件文件。可见,一个游戏所需要编写的技能组件代码数量非常多,甚至超过四位数,因此,要对整个组件代码进行修改需要进行相当庞大的工作。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种编辑游戏技能的方法和相应的一种编辑游戏技能的装置。

为了解决上述问题,本发明实施例公开了一种编辑游戏技能的方法,包括:

响应于游戏技能的编辑指令,创建游戏技能的状态机文件,所述状态机文件中包含游戏技能对应的游戏动作,及所述状态机文件中每个游戏动作与游戏脚本的对应关系;

响应于针对所述游戏技能的释放指令,读取所述游戏技能对应的状态机文件;

调用与所述状态机文件中游戏动作对应的游戏脚本,并运行调用的游戏动作对应的游戏脚本,生成游戏动作对象。

可选的,所述每个游戏动作对应的所述游戏脚本封装于一个代码集合中。

可选的,所述创建游戏技能的状态机文件包括:

确定所述游戏技能的每个游戏动作触发的时间点;

在确定的所述每个游戏动作触发的时间点设置对应的游戏动作的属性。

可选的,所述游戏动作的属性包括以下至少一项:触发事件的名称、触发方式、触发时间、游戏动作的名称。

可选的,所述调用与所述状态机文件中游戏动作对应的游戏脚本之前,还包括:

确定所述针对所述游戏技能的释放指令为针对所述游戏技能中指定游戏动作的第一次调用指令;

所述方法还包括:将所述游戏动作对象存入预设的转接区域中。

可选的,所述方法还包括:

若所述针对所述游戏技能的释放指令不是针对所述游戏技能中指定游戏动作的第一次调用指令,则从预设的转接区域中调取所述指定游戏动作对应的游戏动作对象。

本发明实施例还公开了一种编辑游戏技能的装置,包括:

创建模块,用于响应于游戏技能的编辑指令,创建游戏技能的状态机文件,所述状态机文件中包含游戏技能对应的游戏动作,及所述状态机文件中每个游戏动作与游戏脚本的对应关系;

读取模块,用于响应于针对所述游戏技能的释放指令,读取所述游戏技能对应的状态机文件;

运行模块,用于调用与所述状态机文件中游戏动作对应的游戏脚本,并运行调用的游戏动作对应的游戏脚本,生成游戏动作对象。

可选的,所述装置还包括:

确定模块,用于确定所述针对游戏技能的释放指令是否为针对所述游戏技能中指定游戏动作的第一次调用指令;

存储模块,用于将生成的所述游戏动作对象存入预设的转接区域中。

可选的,所述运行模块还用于,若所述针对所述游戏技能的释放指令不是针对所述游戏技能中指定游戏动作的第一次调用指令,则从预设的转接区域中调取所述指定游戏动作对应的游戏动作对象。

本发明实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行本发明实施例任一项中所述的方法。

本发明实施例还公开了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行本发明实施例任一项中所述的方法。

本发明实施例包括以下优点:

在本发明实施例中,通过响应于游戏技能的编辑指令,创建游戏技能的状态机文件,状态机文件中包含游戏技能对应的游戏动作,及状态机文件中每个游戏动作与游戏脚本的对应关系,响应于针对游戏技能的释放指令,读取游戏技能对应的状态机文件,调用与状态机文件中游戏动作对应的游戏脚本,并运行调用的游戏动作对应的游戏脚本,生成游戏动作对象。通过将游戏内常用的逻辑功能包装在游戏动作中,当需要制作相应的游戏技能时,可以直接使用这段包装代码,达到了高度复用游戏技能逻辑的目的,并且可将之前属于程序员的技能制作流程交由策划或产品来做,减轻了程序员的负担,并且将封装了逻辑功能的游戏动作与状态机结合,通过状态机支持游戏动作的调用,更进一步提高了复用性同时也大大减少了技能组建代码的数量。

附图说明

图1是现有技术的一种技能组件文件的示意图;

图2是本发明的一种编辑游戏技能的方法实施例的步骤流程图;

图3是本发明提供的一种游戏动作的属性设置界面示意图;

图4是本发明的一种编辑游戏技能的装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图2,示出了本发明的一种编辑游戏技能的方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,响应于游戏技能的编辑指令,创建游戏技能的状态机文件,所述状态机文件中包含游戏技能对应的游戏动作,及所述状态机文件中每个游戏动作与游戏脚本的对应关系;

状态机(finite-statemachine,简称fsm),又称为有限状态机,可以表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型,在游戏中通常用于控制玩家角色的行为。状态机文件,是一种状态机的编程实现模型文件。在本发明实施例中,为了便于复用游戏技能,可以在状态机文件中编辑游戏技能。

具体的,可以通过文件编辑应用程序来编辑游戏技能,通过在终端设备的处理器上执行文件编辑应用程序,并在终端设备的显示器上渲染得到图形用户界面,在图形用户界面中包含编辑入口,用户可以通过编辑入口进行游戏技能编辑。其中,终端设备包括各种移动设备或固定设备,例如,平板电脑、台式pc(personalcomputer,个人计算机)等,该终端设备的操作系统可以包括linux、windows等等,通常可以支持各种应用程序的运行。终端设备通常具有适配的信号输入设备,可以接收用户输入的信息,以完成游戏技能编辑。

在具体实现中,当用户需要编辑游戏技能时,可以通过信号输入设备输入游戏技能的编辑指令,并发送游戏技能的编辑指令至文件编辑应用程序,文件编辑应用程序可以响应于游戏技能的编辑指令,创建用于编辑游戏技能的状态机,生成状态机文件。在状态机文件中可以包含游戏技能对应的游戏动作,及状态机文件中每个游戏动作与游戏脚本的对应关系。

游戏脚本是包含游戏功能逻辑的程序文件,在游戏中通常采用游戏脚本进行游戏动作的逻辑控制,从而通过执行游戏脚本中的代码,来执行游戏动作。

通过设置与游戏动作对应的游戏脚本,可以使得游戏内容与游戏引擎分离,促成了游戏开发的清晰分工,游戏编程人员可负责游戏引擎等核心技术工作,而游戏策划和设计人员可专注游戏本身的逻辑、场景与策划。

在一些游戏场景中,一个游戏技能可能对应多个游戏动作,游戏动作记为skillaction。例如,“武僧波动拳”技能,其技能展现方法为:从按下技能控件开始蓄力计时,当松开技能控件后,根据蓄力时长来释放不同技能,如果蓄力时长满了,则释放重攻击,如果蓄力时长未满,则释放轻攻击,其中,重攻击造成150点伤害,轻攻击造成120点伤害。

对于一些游戏动作的控制逻辑,可能需要将其运用在多个技能中,或者运用到其他游戏的技能中,因此,会涉及对这些游戏动作的控制逻辑进行复用。例如,将上述的“武僧波动拳”的轻攻击和重攻击的控制逻辑运用到其他游戏中,针对“武僧波动拳”技能中的轻攻击和重攻击,可以分别配置为两个不同的skillaction,采用这种方式编辑游戏技能逻辑之后,所以如果是采用蓄力和选择轻攻击或重攻击模式的技能,则可以分别复用状态机文件中的这两个skillaction。

步骤102,响应于针对所述游戏技能的释放指令,读取所述游戏技能对应的状态机文件;

在游戏过程中,通过在终端设备的处理器上执行游戏应用程序,并在终端设备的显示器上渲染得到图形用户界面,在图形用户界面中可以包含技能控件,该技能控件的触发事件可以与游戏技能的触发事件相关联。其中,触发事件可以是点击事件,双击事件,长按事件等。当监听到技能控件被点击,双击或长按时,则可以认为监听到游戏技能的触发事件发生。

当用户按下技能控件时,终端设备相当于接收到了一个针对游戏技能的释放指令,可以响应于游戏技能的释放指令,读取游戏技能对应的状态机文件。

作为一种示例,针对上述的“武僧波动拳”技能,当接收到“武僧波动拳”技能的释放指令时,可以读取“武僧波动拳”技能对应的状态机文件。

步骤103,调用与所述状态机文件中游戏动作对应的游戏脚本,并运行调用的游戏动作对应的游戏脚本,生成游戏动作对象。

在本发明实施例中,可以确定与状态机文件中游戏动作对应的游戏脚本,从而调用与状态机文件中游戏动作对应的游戏脚本。如,在状态机文件中记录了“武僧波动拳”技能对应的两个游戏动作:轻攻击和重攻击,则确定与轻攻击和重攻击对应的游戏脚本,并调用与轻攻击和重攻击对应的游戏脚本。

在调用与状态机文件中游戏动作对应的游戏脚本之后,可以运行调用的游戏动作对应的游戏脚本,生成游戏动作对象,以通过游戏动作对象释放游戏技能,播放游戏技能中每个游戏动作的动画特效,例如,轻攻击的动画特效,或重攻击的动画特效。需要说明的是,在释放游戏技能时,如果命中敌方虚拟单位,则可以对敌方虚拟单位造成伤害。

在本发明的一种优选实施例中,所述每个游戏动作对应的所述游戏脚本可以封装于一个代码集合中,便于调用游戏动作的游戏脚本,以及在编辑游戏技能时,直接复用编辑好的游戏动作的状态机文件。

例如,将轻攻击对应的游戏脚本封装于代码集合a中,将重攻击对应的游戏脚本封装于代码集合b中,则在需要调用轻攻击对应的游戏脚本时,可以直接调用代码集合a;在需要调用重攻击对应的游戏脚本时,可以直接调用代码集合b。

在本发明的一种优选实施例中,所述步骤101可以包括如下子步骤:

确定所述游戏技能的每个游戏动作触发的时间点;在确定的所述每个游戏动作触发的时间点设置对应的游戏动作的属性。

在创建游戏技能的状态机文件时,可以首先确定游戏技能中每个游戏动作触发的时间点,其中,触发的时间点可以指从接收到游戏释放指令到播放游戏动作所经过的时间段。例如,针对上述的“武僧波动拳”技能,确定轻攻击触发的时间点是1s,重攻击触发的时间点是2s。

在确定游戏技能的每个游戏动作触发的时间点之后,可以在确定的每个游戏动作触发的时间点设置对应的游戏动作的属性。

游戏动作的属性包括以下至少一项:触发事件的名称、触发方式、触发时间、游戏动作的名称。

触发事件的名称可以是游戏技能的触发事件唯一标识,即触发调用游戏动作对应的游戏脚本的事件名称。

触发方式可以指示游戏动作的触发方式,触发的方式可以包括只触发一次和确保触发两种,其中,只触发一次可以指定每次释放技能只释放一次,从而在一些循环的动作中,不会多次触发释放该技能,确保触发可以是在某些特殊的情况下,还未释放该技能就跳转到另外的状态时,会在状态跳转后,补充释放该技能,从而确保该技能会触发。

触发时间可以指示每个游戏动作的释放时间,即指示从接收到游戏技能的释放指令到播放游戏动作的动画特效的时间。

游戏动作的名称可以是游戏动作的唯一标识,通过游戏动作的名称可以确定一个唯一的游戏动作。

在具体实现中,在终端设备的图形用户界面中可以提供一游戏动作的属性设置界面,该设置界面中可以包含各种输入入口供用户进行输入设置。如图3示出了本发明实施例提供的一种游戏动作的属性设置界面示意图。在游戏动作的属性设置界面中,包括名称输入框,时间设置框,数据输入框,和触发方式选择框。其中,名称输入框用于设置触发事件的名称;时间设置框用于设置触发时间;数据输入框用于设置游戏动作的名称,触发方式选择框用于设置触发方式,包括只触发一次和确保触发。如图3中设置的游戏动作的属性为:当游戏技能的触发事件是“调用skillaction”时,会调用游戏动作的名称为“standxuli”的游戏动作,在经过“0.006s”会调用该名称为“standxuli”的游戏动作对应游戏脚本,并确保该游戏动作会触发。

在本发明的一种优选实施例中,所述调用与所述状态机文件中游戏动作对应的游戏脚本的步骤之前可以包括如下子步骤:

确定所述针对所述游戏技能的释放指令为针对所述游戏技能中指定游戏动作的第一次调用指令;

所述方法还包括:将所述游戏动作对象存入预设的转接区域中。

其中,预设的转接区域可以是预先设置的用于管理技能对象的区域,例如,预设的转接区域可以是hub组件。

在本发明实施例中,在调用与状态机文件中游戏动作对应的游戏脚本的步骤之前,可以首先判断针对游戏技能的释放指令是否为针对游戏技能中指定游戏动作的第一次调用指令,若针对游戏技能的释放指令是否为针对游戏技能中指定游戏动作的第一次调用指令,则认为在先没有通过游戏动作的初始化流程,生成与该游戏动作对应的游戏动作对象,并将该游戏动作对象存储在预设的转接区域中,则可以进行步骤:调用与所述状态机文件中游戏动作对应的游戏脚本,并运行调用的游戏动作对应的游戏脚本,生成游戏动作对象。

在生成游戏动作对象之后,可以将生成的游戏动作对象存入预设的转接区域中,以便下次直接从预设的转接区域中调用该游戏动作对象。

在本发明的一种优选实施例中,所述方法还可以包括如下步骤:

若所述针对所述游戏技能的释放指令不是针对所述游戏技能中指定游戏动作的第一次调用指令,则从预设的转接区域中调取所述指定游戏动作对应的游戏动作对象。

在本发明实施例中,若针对游戏技能的释放指令不是针对所述游戏技能中指定游戏动作的第一次调用指令,则认为在先已经进行过游戏动作的初始化流程,可以直接从预设的转接区域中调用游戏动作对象。

一般而言,在游戏的过程中,会涉及多次释放游戏技能的操作,通过采用预设的转接区域来管理游戏动作对象,从而,当下一次需要运行该游戏动作对应的游戏脚本时,可以直接从预设的转接区域中调用与该游戏动作对应的游戏动作对象,而再不需要创建新的游戏动作对象,节省游戏技能动作的响应时间,进而提高了游戏性能。

在本发明实施例中,还可以直接在游戏脚本中设置需要使用的每个游戏动作的注释,从而不仅可以通过状态机文件来调用游戏技能对应的游戏动作,还可以直接通过游戏脚本释放游戏技能,提高了编程的灵活性。

在具体实现中,可以采用useskillaction方法设置需要使用的每个游戏动作的注释,在useskillaction中设置游戏动作的名称,从而,在执行游戏脚本时,当执行到useskillaction时,会根据游戏动作的名称调用与游戏动作的相对应的游戏脚本。

作为本发明的一种示例,需要使用的游戏技能对应的游戏动作的注释可以设置如下所示:

@useskillactions(‘skillaction_standxuli’)。

其中,standxuli即为游戏动作的名称,表示需要使用的游戏动作为“standxuli”。

在本发明实施例的一种优选实施例中,所述方法还可以包括如下步骤:

当需要复用所述状态机文件时,修改所述状态机文件的名称;采用修改名称后的所述状态机文件编辑新的游戏技能。

当编辑新的技能时,如果需要复用状态机文件,可以直接复用之前做好的状态机文件。例如,需要复用“武僧波动拳”中的蓄力和选择轻攻击或重攻击模式的技能,则可以复用上述步骤101中创建的状态机文件。

具体的,可以复制另一份状态机文件出来,修改状态机文件的名称,设置新的游戏技能引用这个修改名称后的状态机文件,从而达到了游戏技能逻辑的高度可复用的目的。

在本发明实施例中,通过响应于游戏技能的编辑指令,创建游戏技能的状态机文件,状态机文件中包含游戏技能对应的游戏动作,及状态机文件中每个游戏动作与游戏脚本的对应关系,响应于针对游戏技能的释放指令,读取所述游戏技能对应的状态机文件,调用与状态机文件中每个游戏动作对应的游戏脚本,并运行调用的每个游戏动作对应的游戏脚本,生成游戏动作对象。通过将游戏内常用的逻辑功能包装在游戏动作中,当需要制作相应的游戏技能时,可以直接使用这段包装代码,达到了高度复用游戏技能逻辑的目的,并且可将之前属于程序员的技能制作流程交由策划或产品来做,减轻了程序员的负担,并且将封装了逻辑功能的游戏动作与状态机结合,通过状态机支持游戏动作的调用,更进一步提高了复用性同时也大大减少了技能组建代码的数量。

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

参照图4,示出了本发明的一种编辑游戏技能的装置实施例的结构框图,具体可以包括如下模块:

创建模块401,用于响应于游戏技能的编辑指令,创建游戏技能的状态机文件,所述状态机文件中包含游戏技能对应的游戏动作,及所述状态机文件中每个游戏动作与游戏脚本的对应关系;

读取模块402,用于响应于针对所述游戏技能的释放指令,读取所述游戏技能对应的状态机文件;

运行模块403,用于调用与所述状态机文件中游戏动作对应的游戏脚本,并运行调用的游戏动作对应的游戏脚本,生成游戏动作对象。

在本发明的一种优选实施例中,所述每个游戏动作对应的所述游戏脚本封装于一个代码集合中。

在本发明的一种优选实施例中,所述状态机文件创建模块,包括:

时间点确定子模块,用于确定所述游戏技能的每个游戏动作触发的时间点;

属性设置子模块,用于在确定的所述每个游戏动作触发的时间点设置对应的游戏动作的属性。

在本发明的一种优选实施例中,所述游戏动作的属性包括以下至少一项:触发事件的名称、触发方式、触发时间、游戏动作的名称。

在本发明的一种优选实施例中,所述装置还包括:

确定模块,用于确定所述针对游戏技能的释放指令是否为针对所述游戏技能中指定游戏动作的第一次调用指令;

存储模块,用于将生成的所述游戏动作对象存入预设的转接区域中;

在本发明的一种优选实施例中,所述运行模块还用于,若所述针对所述游戏技能的释放指令不是针对所述游戏技能中指定游戏动作的第一次调用指令,则从预设的转接区域中调取所述指定游戏动作对应的游戏动作对象。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行本发明实施例任一项中所述的方法。

本发明实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行本发明实施例任一项中所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种编辑游戏技能的方法和一种编辑游戏技能的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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