其实fw7大致摸得差不多了,因为希望练习的项目是一个可以自己运行的客户端小游戏,根据需求分析所需要的技术支持如下,要找到对应的哪个用法是可以被支持实现的:
1、可动态加载的配置块:
一个游戏需要有大量的配置文件,支持json,部分配置文件要求全域访问,部分配置文件希望动态加载,在不需要使用时卸载,免于占用过多的内存空间;
这点可以使用ES6的对象来实现,将配置数据导出为json存入js里,适当还可以有一些方法,方便于查询,更新等基本的DAO操作
2、可写文件:
运行中需要可以存储当前的状态,进度,属性值等,再次打开app时可以读取;
使用原生的js中的localStorage存储,存储本地即可,支持5M,纯数据而言已经够了,后续开放服务端的时候再更新客户端版本,将localStorage内容读取上传;
风险点,打包成手机包之后是否能支持5M数据存储;需要后续测试一下
3、守护进程:
因为该项目的需求分析下来,需要一个可以一直运转的程序,用来模拟世界运行法制,系统触发事件;
使用ES6的Timer做伪装的守护线程,和其它模块的通讯使用H5的Worker来实现,测试了一下,挺方便的,数据传输也还算利索,方法有几种,实际开发的时候测试下具体情况
4、分部分动态更新页面内容:
页面需要分不同部分进行刷新,当其中一部分数据更新后,需要更新到界面中
fw7满足这个功能,组件也较多,目前的界面表现需求为文字版,不用支持复杂的资源展示和控制的情况下,足够用了,但需要做到界面和逻辑分离,这样如果以后要换,还是比较方便拆解移植的
5、行为树计算
ES6支持的逻辑计算和数据结构足够支持算法了
6、支持对象来抽象主体
游戏中的地图,主角,npc,等最好作为一个对象存在,拥有自己的属性和动作,主动和被动的动作,这样符合对世界观的抽象,要说,面对对象的编程还是比较适合游戏这种项目;
这点可以使用ES6的类和模块来实现
7、可调试
记忆中打日志来调试是基础,如果可以断点查变量的话当然更方便了,这方面 HB和VSCode以及浏览器都可以,但fw7模块慎用,因为被虚拟容器包裹到达不了真实的js
基本的技术需求就是这些,下一章开始,抽象数据,抽象逻辑,服务端架构师开始做一个纯前端项目,哈哈哈,开心