上一个打飞机游戏制作视频的播放数据实在惨淡,每次看数据之前都要给自己做做心理建设,免得老脸挂不住。
有个死党说现在流行复古、怀旧,建议做个老游戏,看能不能攒点人气。像我这种四十来岁的人最大的怀旧点就是仙剑奇侠传,于是花了几天休息时间,做了个仙剑奇侠传渔村剧情的视觉小说。
游戏的素材来自于软星的《新仙剑奇侠传》,所有素材只供学习使用,游戏测试完成后会删除所有的素材。
首先做游戏的基本设置。游戏窗口的分辨率设置为1440乘900;字体楷体、24号;游戏显示的第一个窗口为Dlg_Logo。主要是仙剑奇侠传启动时那一群仙鹤实在是记忆深刻,在Dlg_Logo窗口上打算放一个视频控件,每次启动时会播放仙鹤视频,等视频播放完后再显示Dlg_Welcome窗口,屏幕放上DOS版仙剑的竹卷、葫芦和剑,妥妥的回忆杀。
接下来导入游戏用到的图形素材和非图形素材。
由于探索类的视觉小说文本量大,而且需要对游戏场景中的每一个交互对像做限制和判断,如果像打飞机的游戏那样集中到一个设置文件中,脱离场景和剧情反而容易造成逻辑紊乱。所以先设计好对话窗口Dlg_Talk,然后以任务串连游戏的剧情。
在任务的设计过程中可以通过扩展任务链中的可视化工具,设计每次对话时显示的人物头像,人物名称和对话内容,用任务回答设置中的任务回答和链接任务ID来控制对话完成后角色接到的任务。还可以在重载任务中控制角色在接受任务和完成任务时的初始化和清理工作。
接下来看看几个重要的窗口。
第一个是Dlg_Logo窗口,这个窗口中只有一个视频控件,窗口和控件的大小都是1440*900,动画播放类型为播放一次,视频的资源ID为非图形素材中导入的素材ID,视频播放方式为只播放一次,重载了这个视频控件的OnLeftMouseClick方法,作用是鼠标点击视频后关闭Dlg_Logo窗口并打开Dlg_Welcome窗口。
再看看Dlg_Welcome窗口,这个窗口重载了OnCreate方法,当这个窗口在打开的时候会将游戏的各个交互场景缩放铺满整个窗口,并将Dlg_Talk窗口移到屏幕的最下方,设置游戏的键盘响应窗口为Dlg_System窗口。Dlg_Welcome窗口上还有三个按钮,分别对应新游戏,记取记录和结束游戏。每个按钮都重载了OnLeftMouseClick方法,对应完成不同的操作。
然后再来看串联游戏任务的Dlg_Talk窗口。这个窗口定义了两个函数,方便显示任务和对话内容。窗口会在OnCreate方法中判断调用窗口的是任务还是对话,然后做出调整。对话内容和任务选择分为两个控件,这两个控件的位置和大小都是一样的,并且显示状态是互斥的,都重载了OnLeftMouseClick方法以完成不同的工作。
接下来就是游戏中出现的各个场景了。
以李逍遥的房间为例,这个窗口重载了OnCreate方法,用于加入渐现效果、执行每个交互对象的初始化判断和保存当前场景信息。在这个房间里面会发生三个剧情,第一个剧情是游戏开始时被李大娘糊了一脸,所以在场景中放了李逍遥被打和李大娘打人的素材,第二个剧情是去山神庙学艺却被李大娘盯住,只能从密道逃脱,所以放了密道的按钮,第三个剧情是赵灵儿被黑苗抓入麻袋中,被李逍遥解救,所以放了一个麻袋和一个赵灵儿的按钮。这些交互对象都重载了OnCreate方法以实现初始化,其实处理逻辑很简单,看英语的意思也能猜个八九不离十,就是先判断角色身上是否有某个任务,如果有任务就显示这个交互对象,没有任务就隐藏这个交互对象。这些交互有些需要点击交互的,还重载了OnLeftMouseClick方法,处理逻辑也是判断身上是否有某个任务,如果有任务就调用Dlg_Talk里面定义的函数去显示任务的对话。
在这个房间中还有两个门点,分别是两个按钮控件。一个是离开房间,一个是密道,都重载了OnLeftMouseClick方法,处理逻辑就是关闭当前场景,然后打开下一场景。
其它的场景都这样类似的设置处理。
场景处理完后来看系统窗口,系统窗口Dlg_System在Dlg_Welcome窗口中设置为按键响应窗口,所以我们重载了OnKeyboardDown方法,在处理逻辑中先判断几个互斥窗口的显示状态,接下来截图并保存游戏的画面。在存档和读档按钮中打开Dlg_SaveAndLoad窗口,
在这个窗口的OnCreate方法中由存档文件的内容更新窗口显示的信息。在存档的逻辑中先写入截图,然后保存角色身上的任务。由于任务中可能会有完成任务和接受任务的重载,所以要先用ClearTableFunction删除重载后再保存,最后保存当前的场景窗口和名称。而读档逻辑就是先读取保存的角色任务,并用CopyTableFunction恢复任务的重载,然后读取场景名称并打开。
做完这些工作后我们来测试一下游戏。由于没有做游戏的战斗功能,整个渔村剧情大概就5-8分钟左右就能结束。下一个目标就是给游戏加上战斗功能,静请期待。
视频地址:https://www.iqiyi.com/v_299njrs5fgk.html