mvc
思想 > 方法
1.什么是mvc
model: 数据模型
行为状态树:Model
行为状态机: model写好后,策划可以值填写数据就可以驱动整个游戏,获得不同游戏的展示
鱼,实体,数据。 鱼的数据随便策划修改,我们可以跑出不同的结果。 配置表是一种model,还要有有限状态机,行为决策树。
而不是一大堆if else语句,这样就不用修改代码了。
view:视图
ctrl: 控制
ctrl为中心:
ctrl + model-->来解决策划和程序沟通的问题
策划 + view + model-->程序和美术沟通的问题
2.UI开发中常见的问题;需求-->架构:
unity,cocos creator可视化编程工具
(1)场景很多东西放一起了,他们之间是不同的功能;
(2)Q:主节点上挂的有脚本,但是其他节点不知道哪个挂了脚本...一个月后...GG;
(3)每个按钮上都绑定了函数入口,看代码的时候,不知道什么时候会调用这个接口;
甚至有的在动画事件加了接口;
(4)UI丑的要命,美术改动界面时,把绑定代码的地方给删除掉了,这个时候美术只能哭了!!!
(5)我们协作的时候,所有的人来修改这个场景的时候,只要不下班,你很happy,一旦提交,合并版本的时候,会出现场景冲突,就哭了!!!
3.我们得解决方案是什么? 具体的方法,思想原则-->cocos,unity,白鹭,laya都可以用
(1)场景里面不放任何的东西,空的,内容是运行时new出来;
Canvas + MainCamera + 启动脚本
(2)不在可视化的编辑器下挂任何脚本
(3)每个控件上,我们不绑定任何事件触发
(4)编辑器上-->view, ctrl:给这个视图绑定事件,访问视图内容,在代码可维护
4.UI_ctrl.js: 方便我们访问任意节点;
注意的点: 我们会把一些大的功能的界面,做成一个整体,登陆,结算
定义了一个:view的表
遍历 视图下面的所有孩子,路径-->节点
5.UI_manager.js:提供接口,方便绑定事件等;
6.自动化生成UI ctrl的代码模板;
view已经有了,
ctrl还没有的? ——->编写对应的ctrl代码? 所有的ctrl我要求它集成自我们得这个ui_ctrl;
强调10遍规则,不如自动生成;
插件,用来自动生成diamante模板:
(1)明确命名规则,LoginUI_UI_ctrl
全局插件;
本项目插件:你这个项目使用;
view上label显示你的金币数目;
ctrl-->model-->数据-->设置到view上,就把这个数据显示出来了;
单场景驱动多场景:
game_mgr:
enter_login_scene:(){
//游戏地图
//end
//人物角色
//end
// ui视图
//end
}
enter_game_scene(){
//资源释放
//end
// 场景装载
//end
}