用cocos creato怎样实现有来有回的对话

用cocos creato怎样实现在对话框里有来有回的对话,对话的信息是固定的,类似剧情游戏中的对话,并且当点击对话框时跳到下一句话,结束继续游戏

实现有来回的对话是个“小”功能,最简单的做法:

1、场景里有A和B两个单位;
2、把对话保存到一个数组里,数组的每一个元素保存一个map,map用来记录“谁”和“说得什么”:

[
   {
       name : "A"
       dialogue : "你好,我是A。"
   },

   {
       name : "B"
       dialogue : "你好,我是B。"
   },
   ........
]

3、然后,你要做得就是“播放这个数组”,细节上:

  • 可以用“状态机”控制流程,用creator自带的“调度器”检测这个状态机。当然大材小用了,你可以仅仅用事件回调来调用。
  • 通过“事件回调”调用下一数组,就是在onTouchedEnded里写调用下一个数组元素。
  • 每个数组元素进行“播放”前,你要“判断”是谁在说话。

如上,这是最简单的流程的。对于刚入门,可以这样设计。这种设计存在最大的问题是,无法复用,功能单一,对话配置繁琐(最好有个编辑器或者脚本规则)

想更好的设计,有两个深入的角度:

  • 对话选择树,你和NPC的对话会影响游戏剧情、任务。
  • 剧情控制变得可扩展,你的NPC不只是站在那里,它还要移动,跳跃,作出任何动画效果,你怎么让这个扩展复用?设计模式,核心是命令模式。
2赞