1 Star 0 Fork 11

Machaelnee / BoomEditor

forked from jims_c / BoomEditor 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
FAQ.md 3.53 KB
一键复制 编辑 原始数据 按行查看 历史
jim 提交于 2017-09-06 17:04 . 添加FAQ和教程

FAQ

  • 什么是属性可修改的布局文件引用机制?
  • 这种机制本质上还是和ccb和ccs一样,不过给了用户改变其属性的机会,但只能改变属性,不能增加节点,删除节点,改变节点顺序。编辑器会记录用户改变的属性,并跟原布局文件进行比较,然后会比较差异属性,并保存到布局文件中,在解析的时候,修改后的属性会覆盖原先的属性,这样既保存了引用的布局文件的大部分属性,又能有自己的独有属性,可以参考SampleProject中的Poker.bui和Player.bui
  • Loader是如何关联布局文件和脚本的?
  • 在开始解析的时候,Loader会调用根据setScriptBindingFunc设置的函数来获得一个脚本对象,然后解析布局文件,根据布局文件的根节点的属性来设置这个脚本对象的属性,所以,这个脚本对象必须是一个node对象,然后根据布局文件创建子节点以及设置子节点属性,并添加到脚本对象的节点树种,同时也会记录每个节点的uuid,name,以及node对象的引用,也会记录Button等控件的回调函数,解析完成后,就会调用脚本对象的loaded函数,并将成员列表和回调函数列表作为参数,由脚本对象内部来进行变量绑定和回调函数绑定
  • 发布工程的时候不能发布为二进制文件吗,json解析效率没有问题吗?
  • 如果用脚本来解析,解析json是非常方便的事情,解析二进制返回会比较麻烦。json解析确实是有效率的问题,但需要实际测试,如果有效率问题,可以使用beginLoad来异步解析,甚至可以在游戏开始的时候全部解析并缓存起来,需要的时候在创建为场景树
  • 这个编辑器为什么这么大?用的什么技术?
  • 程序由1个winform的壳以及4个浏览器窗口加1个渲染窗口组成的,把浏览器嵌入到winform里面用的是CefSharp,渲染窗口是cocos-js实现的一个窗口程序,由winform作为其父窗口来实现的,5个浏览器窗口分别用于显示工程目录资源(主要用fancytree实现),布局文件节点信息(主要用fancytree实现),控制台信息(空内容的html页面),节点属性信息(vuejs实现的属性绑定以及属性变化监视),动画编辑窗口(cocos-html5实现的一个html界面,其界面本身就是由BoomEditor制作的,相当于一部分功能的自举),帧属性窗口(同样基于vuejs实现)。程序大的主要原因是CefSharp本身很大(可以理解为自带一个chrome程序),而且cocos-js也不小。所以导致很大。
  • 只比较了这几种编辑器,还有其他编辑器呢?
  • 也有试过其他编辑器,确实没有理想中的编辑器,比如x-studio365,确实很强大,功能很多,但是不能引用布局文件(如果有,也是ccs那种),没有对应的脚本解析方案,还有fairy gui,没有cocos的解析库,没有布局文件引用,也没有脚本解析方案。
  • 为什么只开源了部分代码,编辑器本身不开源吗?
  • 几个html界面是源码,编辑器的解析部分编译成了jsc,这部分的代码其实比较乱的,我需要花点时间整理下,winform部分没有开源的打算,winform部分我也没做混淆,你如果反编译,也是看得到代码的。
  • 编辑器既然不开源的话会持续维护吗?
  • 会持续改进的,因为这是我对这几年游戏开发的思考的一个成果,也希望得到更多的人来认同我这么一个想法,更多的人来使用它。
1
https://gitee.com/Mingnee/BoomEditor.git
git@gitee.com:Mingnee/BoomEditor.git
Mingnee
BoomEditor
BoomEditor
master

搜索帮助