evkworld调用环境引擎如何制作回合制游戏?

通过变量控制圆形舞台

在本教程中,我们通过变量控制一轮的不同阶段。

0:玩家的动作阶段,玩家可以进行攻击等行为。

1:效果执行阶段,当玩家进行攻击、使用道具等操作时,进入效果执行阶段。在这个阶段,操作UI隐藏,执行具体的行为逻辑,执行后判断游戏是否成功。如果游戏继续,返回阶段0,否则返回阶段2或3。

2.进入这个阶段,游戏就赢了。

3.当进入这个阶段时,游戏失败。

建造一个场景

创建玩家角色和敌人

创建4个新角色和4个敌人。

创建同质组,战斗角色组,并将战斗角色放入同质组。

在同一组下创建五个新的实例变量,用于战斗中的逻辑处理。

请点击输入图片说明。

将敌人变量设置为1。

请点击输入图片说明。

行动的速度决定了一轮中谁先行动。值越大,优先级越高。可以自己设定,就像生命和攻击力一样。本教程默认玩家到敌人的速度是8~1。

在本教程中,角色名用于显示战斗文本。您可以自己填写相应的对象名称。

将战斗人物放入场景中

请点击输入图片说明。

放置行为按钮

在本教程中,玩家将能够做两件事:攻击和跳过回合。

分别创建两个按钮,并把它们放在动作按钮层组。

请点击输入图片说明。

新显示文本

为了了解当前的战斗情况,我们设置了两个文本对象,分别用来显示当前的回合数和当前的角色操作。

请点击输入图片说明。

建立转弯控制变量

创建两个新的数值变量,用于显示当前回合和当前回合的阶段,初始值为0。

请点击输入图片说明。

分阶段实现循环逻辑

请点击输入图片说明。

阶段0需要什么?

首先,我们实现阶段0,这是可操作的阶段。在这个阶段,我们需要实现以下功能。

动作序列的检测:首先检测战斗人物的动作序列。并分别处理敌人和玩家的逻辑。如果没有本轮没行动的人,就进入下一轮。

玩家动作:在玩家回合中,显示行为按钮,等待玩家按下按钮进入具体实现逻辑。

敌人:自动选择一个不活跃的单位进行攻击。

检测是否进入阶段0。

新建一个事件分组,增加一个条件判断当前阶段为0。

同时先显示“动作按钮”层(也可以等到确定玩家的回合才显示)。

请点击输入图片说明。

检测动作序列

为了记录战斗角色的动作顺序,我们设置了一个数组来保存。

请点击输入图片说明。

添加一个子事件来检测数组是否为空。如果数组为空,将字符按顺序再次添加到数组中,圈数为+1。

请点击输入图片说明。

创建新的事件分组,实现“更新动作序列”的动作组逻辑。

利用系统组件提供的排序遍历循环条件,战斗角色组通过动作速度循环,uid加入数组。

请点击输入图片说明。

当前动作角色是玩家时处理逻辑

对比uid,得到第一个动作战机,判断是否是玩家。

请点击输入图片说明。

为了记录当前操作的是哪个角色,创建了一个新变量,当前动作角色uid,战斗角色的UID保存在变量中。同时,动作信息文本对象的内容被更新。

在0阶段开始的时候,我们已经展示了操作按钮层,用户只需要点击相应的按钮就可以进行战斗了。战斗的详细逻辑会在后面的1阶段讲解。

请点击输入图片说明。

当角色是敌人时处理当前动作逻辑

类似地,uid被比较以确定它们是否是敌人,如果是,则执行敌人攻击行动组。(具体的对敌攻击逻辑会在后面的阶段1教程中实现)

请点击输入图片说明。

阶段0事件概述

请点击输入图片说明。

1阶段要实现的内容

当敌人攻击或玩家操作时,进入阶段1执行特定逻辑。本教程只实现了简单的攻击和跳过回合,可以根据需要实现特殊的动作逻辑。

玩家行为

敌人攻击

胜利或失败的判断

玩家攻击

创建新的事件分组,实现玩家操作。

在本教程中,玩家的攻击步骤是:

请点击输入图片说明。

点按“攻击”按钮。

点击敌人图标攻击目标。

我们需要一个变量来记录是否是选择攻击目标的当前状态,并为这个新变量选择一个目标。

请点击输入图片说明。

当点击攻击按钮时,选择目标被设置为1,动作信息文本组件的内容被更新。

请点击输入图片说明。

选择target =1时,点击敌人图标攻击敌人。行动组参数是目标敌人的uid。

请点击输入图片说明。

现在我们实现了攻击敌人的行动小组。首先,将stage设置为1,并将所选目标重置为0。

新的子变量局部攻击力

请点击输入图片说明。

选择uid为可变当前动作角色UID的战斗角色组(即当前操作的角色),分配local_ attack威能。

选择被设定为攻击目标的敌人,降低生命值。

生命值设定公式:钳(战斗角色群。生命-局部_攻击力,0,战斗角色群。生活)

为了更直观地看到攻击效果,我们创建了一个新的文本对象。当一个角色攻击时,它会产生伤害数字,并在一秒后摧毁它们。

把它放到场景中

减少敌人生命值时创建文本。

建立子事件,判断当敌人生命值归零时,消灭敌人,将敌人移出人物动作阵。

数组删除公式:字符动作顺序。战斗角色组索引。uid)

最后,从动作数组中删除当前动作字符:字符动作序列。indexof(当前动作字符UID)。

将当前阶段重置为0后,判断战斗结果。敌人全灭就胜利,我们全灭就失败。

请点击输入图片说明。

玩家攻击事件的全貌如下:

请点击输入图片说明。

玩家动作:跳过当前回合。

点击跳过回合按钮,将当前角色从动作数组中移除,进入阶段1,一秒后返回阶段0。

请点击输入图片说明。

敌人攻击

敌人攻击的逻辑和玩家大致相同,不同的是随机选择目标。

请点击输入图片说明。

最后返回到分阶段实现的轮逻辑事件组,相应地设置阶段1,2,3。(在本教程中,获胜阶段和失败阶段显示为文本内容,可以自行添加逻辑。)

请点击输入图片说明。

以上是实现简单回合制框架的全部内容。