游戏中的mvc设计模式

    xiaoxiao2023-11-25  176

    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 }

     

    最新回复(0)