当上一篇中的函数fw_draw_text_ext_color(x,y,"按空格结束",450,c_white,c_black, 1)中的字符串"按空格结束"用数组变量替代后,即
r[n]="按空格结束";
fw_draw_text_ext_color(x,y,r[n],450,c_white,c_black, 1);
对话系统即可迎刃而解。
我们可以在talk对象的create事件中把我们的对话库写进去,如图,每一句话使用一个一个数组元素r[n]代替。当想让对话事件发生,我们只需指向第一句对话的数组元素的那个数字n即可。
以上只是解决了指向问题,大家应该会疑惑为何每句话前都有两个数字。
例如:"11你在干什么?"
第一个1我们设为代表主角说话,即第一位是1的时候,实现红框效果——我们的对话要出现在屏幕左下方以及我们要使用特定的背景框。
同理,当第一位数是0时,便是狗蛋说话,此时对话框续出现在屏幕左上角且使用特定背景框。
当第一位数是9时,我设为代表对话结束。
第二位数我设为代表说话人的头像,即蓝框区域信息,假如是1,即是主角头像。范例中只有主角跟狗蛋两人所以暂时用一位数来代表。
综上所述,对话系统的整体思想是:将对话框、位置、头像等文字以外的信息使用数字代替,集成进每一句对话中。至于用什么数字代替,怎样编解码,你可以自己去定义。
以上,便是对话系统的核心思想啦。看不懂的请下载例程研究。
例程下载http://pan.baidu.com/s/1eSMB0UA