通过变量控制回合阶段
我们在本教程中通过变量控制一个回合的不同阶段。
0:玩家的行动阶段,在此阶段下玩家可以进行攻击等行为操作
1:效果执行阶段,当玩家进行了如攻击、使用道具等操作后,进入效果执行阶段尺陵昌。 在此阶段下,操作UI隐藏,执行具体行为逻辑,并在执行结束后判断游戏是否胜利。 如游戏继续则返回阶段0,否则返回阶段2或3
2:当进入该阶段时游戏胜利
3:当进入该阶段时游戏失败
检测行动顺序: 先检测战斗人物的行动顺序。 并分别处理敌人和玩家的逻辑。 如果该回合没有尚未行动的人物,则进入下一回合。
玩家行动: 在玩家的回合,显示行为按钮,等待玩家按下按钮进入具体实现逻辑
敌人: 自动选择一名尚未行动的我方单位进行攻击
玩家行为
敌人攻击
胜负判断
点击攻击按钮
点击敌人图标攻击目标
搭建场景
创建玩家角色和敌人
新建4个人物和4个敌人对象
创建同类组【战斗人物组】并将战斗角色放入同类组中
在同类组下新建5个实例变量,用于战斗时逻辑处理
请点击输入图片描述
请点击输入图片描述
【行动速度】决定了一回合内谁先行动,数值越大越优先行动,同生命、攻击力一样可自行设置。本教程中默认为从玩家到敌人行动速度为8~1.
【人物名称】在本教程中用于显示战斗文本,可自行填写对应的对象名
将战斗人物放入场景
请点击输入图片描述
放置行为按钮
本教程中,玩家将可以进行两种操作:攻击和跳过回合
分别建立两个按钮,并将其放入“操作按钮”图层组中
请点击输入图片描述
新建显示用文本
为了知道当前战斗的情况,我们建立两个文本对象,分别用于显示当前回合数、当前人物操作
请点击输入图片描述
建立回合控制变量
新建两个数值变量,用于显示当前回合以及当前回合所处阶段,初始值均为0
请点击输入图片描述
按阶段实现回合逻辑
请点击输入图片描述
阶段0所需实现内容
首先我们实现阶段0,也就是可行动阶段。在该阶段,我们需要实现以下功能
检测是否进入阶段0
新建事件分组,添加条件判断当前进入阶段0
同时先显示“操作按钮”图层(也可以等到判定是玩家的回合在显示)
请点击输入图片描述
检测行动顺序
请点击输入图片描述
添加子事件,检测数组是否为空,如果数组为空,重新按顺序添加人物到数组中,回合数+1。
请点击输入图片描述
新建事件分组,实现“更新行动顺序”动作组逻辑。
使用系统组件提供的排序遍历循环条件,通过行动速度对战斗人物组进行循环,并将uid加入数组
请点击输入图片描述
处理当前行动人物是玩家时逻辑
请点击输入图片描述
为了记录当前操作的是哪一个人物,新建变量【当前行动人物UID】,并将战斗人物的uid保存到变量中。同时更新行动信息文本对象的内容
在阶段0开始时,我们已经将操作按钮图层显示出来,用户只需要点击对应按钮即可进行战斗。 战斗的详细逻辑将在下面阶段1中讲解。
请点陵扒击输入图片描述
处理当前行动人物是敌人时逻辑
同样比较uid,判断是否是敌人,如果是,执行敌人攻击动作组。(下面阶段1教程中会实现具体敌人攻击逻辑)
请点击输入图片描述
阶段0事件总览
请点击输入图片描述
阶段1所需实现内容
当敌人攻击、或玩家进行操作后,进入阶段1执行具体的逻辑。 本教程中只实现简单的攻击和跳过回合,您可以根据需求自行实现特殊的行动逻辑。
玩家攻击
请点击输入图片描述
我们需要变量记录当前是否为选择攻击目标的状态,为此新建变量【选择目标】。
请点击输入图片描述
当点击攻击按钮时,【选择目标】设为1,并更新行动信息文本组件内容
请点击输入图片描述
当【选择目标】=1时,点击敌人图标,攻击敌人。动作组参数为作为目标的敌人的uid
请点击输入图片描述
现在我们实现攻击敌人动作组,先将阶段设置为1,选择目标重置为0。
新建子变量local_攻击力
请点击输入图片描述
选中UID为变量【当前行动人物uid】的战斗人物组(也就是当前操作的角色),赋值local_攻击力
选中被设为攻击目标的敌人,减少生命值。
生命值设置公式:clamp(战斗人物组.生命-local_攻击力,0,战斗人物组.生命)
为了更直观的查看攻击效汪老果,我们新建一个文本对象,当人物呗攻击时,生成伤害数字并在一秒后销毁
放入场景
在减少敌人生命值时,创建文本
建立子事件,判断当敌人生命值归零时,销毁敌人,并把敌人从人物行动数组中移除
数组删除公式:人物行动顺序.indexof(战斗人物组.uid)
最后,将当前行动人物从行动数组中去除:人物行动顺序.indexof(当前行动人物UID)
在将当前阶段重置回0后,判断战斗结果,如果敌人全灭则胜利,如果我方全灭则失败
请点击输入图片描述
玩家攻击事件全图如下:
请点击输入图片描述
玩家操作:跳过当前回合
点击跳过回合按钮时,从行动数组中去除当前角色,进入阶段1. 并在一秒后返回阶段0
请点击输入图片描述
敌人攻击
敌人攻击的逻辑与玩家大致相同,区别在于攻击目标目标为随机选择
请点击输入图片描述
最后,返回按阶段实现回合逻辑事件组,对阶段1、2、3分别进行相应的设置。(本教程中,胜利阶段与失败阶段为显示文本内容,您可以自行添加逻辑)
请点击输入图片描述
以上便是实现简单回合制框架的全部内容。