
最近正在尝试做一款小游戏于是选择了相对简单的微信小游戏制作工具其中有一个很常见的对话模块以下是本人的一些想法一.存放对话内容首先要搞清楚游戏对话一般都是预设好的所以对话内容应该新建一个表来存储等到需要用的时候再向后一个个读取就行这里可以创建多个列表即一维数组来存放对话内容但在这里我选择采用表格二维数组的方式来存放这样就避免了多次创建表格同时也方便了对话的管理和修改。二.设置变量这里我设置了两个变量分别是a推进对话b对话号以及列表c对话长度其中变量a用来1记录精灵的点击次数来判断“对话文字”应该输出表格中的第几句话b用来记录第几列这里我把每一个对话存为一列不同的对话在不同列由于每段对话的的长度不同这里我新加入一个列表c用来记录每段对话的长度当对话进行到最后一句再触发后面的条件判断部分。三.构建逻辑部分这里可以清楚地看到当精灵被点击是变量a就会增加一这时推进文字显示表格中该列的下一行内容达到点击切换下一行的目的如果只是显示一则对话只有这部分就可以但是我的目的是显示不同的对话所以当对话进行到最后一句时我们可以将变量a归0然后方便下一次调用该模块同时将对话部分隐藏这里也可以对容器即将多个精灵作为一个整体。容器的设置方式在编辑区同时框选多个精灵此时可以看到层级管理部分被框选的精灵都处于被选择状态此时右键编辑器精灵就可以设置容器了如果有其他精灵被放进容器只需要在层级区长按拖动将其移出容器进行隐藏以停止这部分精灵的交互对话长度列表只有一列即对应对话长度可以加一列注释方便后期修改参数表中通过编号表示不同的交互精灵对象例如npc1的对话长度就是第一行的数据npc2的对话长度就是第二行的数据这样我们就只需要给npc编号即加入一个全局变量b用来表示每一则对话的编号当点击不同的npc时将b修改成对应值用来查询表c的不同行的数据同时也可以用来查询对话列表的不同列的对应的对话这样就实现了不同npc交互后显示不同对话同时总是可以完整地将对话进行下去。对话后的选项问题一般对话后都会有选项其实选项的逻辑和对话时一样的只不过交互对象由原来的一个变为了多个 如果是每个选项之间只是数值的倍率不一样的话我的想法是设置一个变量x用来存放选择结果例如a选项加10b选项加5c选项加1当选a时将x设为10同时通知选择容器隐藏之后只需要读取记录不同事件的数值的表格中的数据再乘以x就得到了选择后的数值结果完成了一次选择。当然以上的模式还是有不完善的地方比如有些对话只能进行一次这里我的想法是当对话进行完毕后修改第一句话的内容为“没有新对话”之类的字符串同时在显示第一句对话后判断内容是否为“没有新对话”如果是就终止对话反之则继续。以上就是我对游戏中对话的理解以及实现方法。