evkworld唤境引擎怎么制作回合制游戏啊?

想做一款rpg,怎么做回合切换呢... 想做一款rpg,怎么做回合切换呢 展开
 我来答
唤境
2019-08-21 · 超过33用户采纳过TA的回答
知道答主
回答量:34
采纳率:85%
帮助的人:39.4万
展开全部

通过变量控制回合阶段

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

  • 0:玩家的行动阶段,在此阶段下玩家可以进行攻击等行为操作

  • 1:效果执行阶段,当玩家进行了如攻击、使用道具等操作后,进入效果执行阶段尺陵昌。 在此阶段下,操作UI隐藏,执行具体行为逻辑,并在执行结束后判断游戏是否胜利。 如游戏继续则返回阶段0,否则返回阶段2或3

  • 2:当进入该阶段时游戏胜利

  • 3:当进入该阶段时游戏失败

  • 搭建场景

    创建玩家角色和敌人

    新建4个人物和4个敌人对象

    创建同类组【战斗人物组】并将战斗角色放入同类组中

    在同类组下新建5个实例变量,用于战斗时逻辑处理

    请点击输入图片描述

    将敌人的【是否敌人】变量设置为1

    请点击输入图片描述

    【行动速度】决定了一回合内谁先行动,数值越大越优先行动,同生命、攻击力一样可自行设置。本教程中默认为从玩家到敌人行动速度为8~1.

    【人物名称】在本教程中用于显示战斗文本,可自行填写对应的对象名

    将战斗人物放入场景

    请点击输入图片描述

    放置行为按钮

    本教程中,玩家将可以进行两种操作:攻击和跳过回合
    分别建立两个按钮,并将其放入“操作按钮”图层组中

    请点击输入图片描述

    新建显示用文本

    为了知道当前战斗的情况,我们建立两个文本对象,分别用于显示当前回合数、当前人物操作

    请点击输入图片描述

    建立回合控制变量

    新建两个数值变量,用于显示当前回合以及当前回合所处阶段,初始值均为0

    请点击输入图片描述

    按阶段实现回合逻辑

    请点击输入图片描述

    阶段0所需实现内容

    首先我们实现阶段0,也就是可行动阶段。在该阶段,我们需要实现以下功能

  • 检测行动顺序: 先检测战斗人物的行动顺序。 并分别处理敌人和玩家的逻辑。 如果该回合没有尚未行动的人物,则进入下一回合。

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

  • 敌人: 自动选择一名尚未行动的我方单位进行攻击

  • 检测是否进入阶段0

    新建事件分组,添加条件判断当前进入阶段0
    同时先显示“操作按钮”图层(也可以等到判定是玩家的回合在显示)

    请点击输入图片描述

    检测行动顺序

    为了记录战斗人物的行动顺序,我们建立一个数组来保存

    请点击输入图片描述

    添加子事件,检测数组是否为空,如果数组为空,重新按顺序添加人物到数组中,回合数+1。

    请点击输入图片描述

    新建事件分组,实现“更新行动顺序”动作组逻辑。
    使用系统组件提供的排序遍历循环条件,通过行动速度对战斗人物组进行循环,并将uid加入数组


    请点击输入图片描述

    处理当前行动人物是玩家时逻辑

    比较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分别进行相应的设置。(本教程中,胜利阶段与失败阶段为显示文本内容,您可以自行添加逻辑)

    请点击输入图片描述

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式