欢迎光临散文网 会员登陆 & 注册

第二节 走进触发器之「奏乐」特技的实现(二)

2023-08-12 12:21 作者:黑店小小二  | 我要投稿

这一小节,我们用触发器来自己实现一个「奏乐」特技。

开始本节前,我们简单回顾下流程图。

简易流程图

这是一个简易流程图。

①输入i

②令i = 0

③判断i<9结果

④若③为假,进入到⑦;为真进入到⑤

⑤输出i

⑥令i + 1,回到③

⑦结束


流程图包含了编程思想里最主要的几个概念:if(条件真假),for(循环),i = 0(赋值),i+1(自增)

这也是我们今天要用到的几个概念。

先贴完整代码

(可直接复制代码运行)

看下效果

大乔部队气力上升22

接下来是代码讲解。

奏乐的特技描述是己方部队每回合回复气力5点。

我们上一小节分析了,其中每回合是触发器,已方部队是目标,回复气力5点是行为。

我们对照这个分析找到对应的函数。


通过查文档我们知道111触发器,代表回合开始时。


111触发器

我们发现这个触发器的括号里还有内容,这个叫做回调参数。是这个触发器触发的时候,给我们的一些额外信息。

比如这里的是pk::force@ force。这个表示势力,也就是游戏里显示的xx军,如刘备军,曹操军。

我们知道,游戏里是每个势力轮流执行1个回合,所以这里的force是表示这个回合是轮到哪个势力。

List是指一类同样类型数据的特殊类型。


单个person类型跟多个person类型

如上图,List类型内是Person类型的集合。

List是游戏里常用的数据类型,势力列表,部队列表,武将列表等等都是List类型,对应的也有Array(数组类型),用法跟List一致。

pk::get_unit_list(force) 是游戏内置函数之一,用来获取指定势力的部队列表。

所以整句的意思是

获取部队列表

这是for循环。我们需要获取到的部队列表里的每一个部队进行指定的处理。

其中unit_list.count代表list的数量;

i 代表序号,从0开始算起。0代表第0个,1代表第1个......

i += 1 是i加1 后再赋值给i;



从List里取出unit(部队)


ch是制作组写的通用方法,可以在302 全局函数.cpp 查阅,涉及了大多数常规处理。

其中has_skill用来判断部队是否有xx特技,有的话返回true。


add_energy 是给指定部队增加气力。

第一个参数是指定部队;

第二个参数是变化的值,正数则增加,负数则减少。

第三个参数是要不要展示加减动画。如上面的gif图,能看到+22。改为false则看不到这个动画,但实际小姑还是有的。


讲到这,奏乐特技基本实现。


第二节 走进触发器之「奏乐」特技的实现(二)的评论 (共 条)

分享到微博请遵守国家法律