用cocos creato怎样实现在对话框里有来有回的对话,对话的信息是固定的,类似剧情游戏中的对话,并且当点击对话框时跳到下一句话,结束继续游戏
实现有来回的对话是个“小”功能,最简单的做法:
1、场景里有A和B两个单位;
2、把对话保存到一个数组里,数组的每一个元素保存一个map,map用来记录“谁”和“说得什么”:
[
{
name : "A"
dialogue : "你好,我是A。"
},
{
name : "B"
dialogue : "你好,我是B。"
},
........
]
3、然后,你要做得就是“播放这个数组”,细节上:
- 可以用“状态机”控制流程,用creator自带的“调度器”检测这个状态机。当然大材小用了,你可以仅仅用事件回调来调用。
- 通过“事件回调”调用下一数组,就是在onTouchedEnded里写调用下一个数组元素。
- 每个数组元素进行“播放”前,你要“判断”是谁在说话。
如上,这是最简单的流程的。对于刚入门,可以这样设计。这种设计存在最大的问题是,无法复用,功能单一,对话配置繁琐(最好有个编辑器或者脚本规则)
想更好的设计,有两个深入的角度:
- 对话选择树,你和NPC的对话会影响游戏剧情、任务。
- 剧情控制变得可扩展,你的NPC不只是站在那里,它还要移动,跳跃,作出任何动画效果,你怎么让这个扩展复用?设计模式,核心是命令模式。
2赞