友情提示:380元/半年,儿童学编程,就上码丁实验室。
《仙剑奇侠传Windows95版》、《仙剑奇侠传98柔情篇》:也就是真正的“仙剑95版”,1997年出品。仙剑98柔情篇是大宇于同年在大陆推出的仙剑Win95版之相应简体版,首发于1997年10月,这一版本也是在中国大陆流传得最广的仙剑一。游戏画面看上去和DOS版并无太多区别;增加了数个AVI动画;增加了四首CD音轨,背景音乐由DOS内默认的FM音源(即RIX格式)变为MIDI格式。部分迷宫地图作了一定简化,少量对白被更改,我方法术习得等级降低、BOSS生命降低。此外,所有道具加入了文字说明,这一点是非常实用的改进。
想再次重温、怀旧的朋友可在后台回复‘游戏下载’获取游戏下载链接
以上内容可以忽略,本期的副标题:《NPC对话内容存储与显示》
如何实现与不同的NPC对话,显示不同的内容呢?用什么数据结构来实现呢?我采用的是链表。用每一个链表来存储每一组对话内容。
首先用一个列表来存放所有NPC的对话内容,顺序没有要求,这个列表作为链表节点的值域(value)。
接下来用一个列表来存放链表节点的指针域(next),none表示空值,它与对话文本列表是一一对应的。
最后还要构建一个列表用来存放链表的头指针(head),这个列表1~100用来存放静止NPC的对话链接的头指针,从101开始存放移动NPC的对话内容链接的头指针,以#用来分割在某一事件下的头指针,也就是说在普通情况下对话的头指针是#左边的值,如果触发了一个故事情节事件,NPC的对话内容会发生改变,那么头指针就会是#右边的值。
接下来通过_head的指向读取到第一句对话内容的索引号,显示出来,根据这个节点其对应的next指针获取到下一句话的索引号,以此类推,直到next为none时,对话结束。在这个过程中还要及时的将每一句话的人的前缀名称传递给大头贴角色用来即时显示相关的大头贴造型。
大头贴角色的代码呢,首先将该角色下的所有造型名称写入列表
根据传递过来的NPC_name替换相应的大头贴造型,没有的显示空(none)造型
本期内容有点多,尤其是在创建数据结构上有点绕,但创建一个好的数据结构对于解决复杂问题的确有很大的益处。
本系列只提供素材分享,不分享源代码,抱歉!~
素材链接: https://pan.baidu.com/s/1vaYrN0UKi3EeapRL9mH0hQ 提取码: vyh1
指导视频:
转自公众号:
嘻嘻哈哈学编程