前言:基于cocoCreator版本2.4.5整理一款2D小游戏快速开发的游戏框架。
一、cocosCreator的UI框架。
中心思想, 将所有的UI窗体分为3类管理(1级窗体, 2级窗体, 3级窗体),分类规则:
1、1级窗体存在互斥性,当1级窗体A处于打开状态,此时打开1级窗台B将自动关闭窗台A;常作为父级面板存在。
2、2级窗体依赖与1级窗台,只能作为1级窗台的子节点存在。
3、3级窗体独立存在且无互斥性。1级2级没有关系。
根据以上规则实现UI节点的加载管理和在内存中的自动释放,之所分为不同级窗体便于规则制定和管理的同时,也方便拆分预制体节点。
-- 使用 UIManage.Instance.ShowUIPannelByID(xx, xx, xx)传入不同参数,加载窗体节点;
-- 当点击关闭按钮,1级窗体进行关闭释放,此时子节点存在2级窗体; 2级窗体自动实现节点的销毁以及内存释放; 3级窗体同理
-- UI节点树中常用这两个最为窗体父亲节点:
---- fixed(固定窗体的父亲节点,比如头像、菜单等固定3级UI节点)
---- popup(弹出窗体的父亲节点,任何1和3级UI窗体)
注意:2级窗体依赖于1级窗体而存在。
二、项目介绍(主要脚本功能)
-- UIManager **
UI窗体管理类, 控制的所有窗体的加载, 显示,销毁等功能
-- UIBasic **
UI窗体的基类, 你的自定义窗体脚本应当继承它, 只有继承它才能实现动态加载的资源自动释放,以及自动管理UI释放等功能。
-- UIMaskBg **
UI窗体的遮罩管理类, 为UI窗体添加一个背景阴影
-- UIPlanInfo *
设置UI窗体的配置比如:预制体路径和名子、UI等级、背景遮罩、是否从内存中释放。
-- EventManage **
事件管理, 游戏中常用的事件监听和分发,实现解耦合功能。
-- NetManage **
使用webSocket协议实现与后端的通信功能,其中实现了proto序列化功能。涉及脚本:ServerProxy文件夹下。
-- ResManage **
资源管理,这里我们针对自己定义的bundle管理,包括资源加载/释放bundle和内部资源。
-- SoundManage **
封装了聲音播放、暂停接口。不全可以自己补充。
-- TableManage **
表格配置,进入游戏我们将所有的数据加载进内存中,通过searchTable或searchTables接口进行同步获取数据。
-- TimerManage **
全局的时间管理对cocos内部定时器的封装,相当于setTimeOut,相对更喜欢自己封装的,更贴合cocos引擎。
-- SysConfig *
配置类 一些和框架有关系的配置。
-- ToolBox *
常用的一些通用功能模块函数
-- GameLanch ***
启动脚本,初始化框架数据。
-- GameApplication ***
游戏入口脚本
二、框架远程地址
https://gitee.com/songhuiyuan/cocos-creator_-uiframe-work_2-d.git