6 Star 16 Fork 9

uicode / fairygui_quickx

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README.md 3.79 KB
一键复制 编辑 原始数据 按行查看 历史
wenyang liu 提交于 2018-10-12 15:35 . 更新readme

这是一个基于Cocos2d-Lua 社区版的fairygui解析库,基于Lua语言,就姑且叫做Fairygui-quickx吧.

首先要明确一点,fairygui的官网已经提供了FairyGUI-cocos2dx,我的这个在兼容性,完整性和性能上都不如官方的版本.

附加文档,位于doc目录下

  1. 一些个代码片段.md
  2. Quick-Cocos2dx-Community_3.7.2兼容.md(目前兼容3.6.5和3.7.2)

完成度和已知bug

  1. 基础功能展示中的Text,以及聊天的demo没有完成(原因看2、3、4)
  2. 富文本没有实现
  3. 位图字体非常简陋,只支持锚点和单行
  4. fnt字体除了描边,其他的特效都不支持(比如阴影,下划线,斜体,粗体)
  5. 没有实现一个好用的tween的库,而只是抄C++的ActionManager,用lua写了一个很简陋的ActionManager,没有进行很好的封装.
  6. 九宫格的图片不支持变灰.
  7. 帧动画非常简陋,也还有bug(帧率明显不对,大部分时候慢了,可又有时候非常的快。。。)。
  8. 还有N多新的bug尚未发现......

为什么要写这个库?

1. 为了更深入的阅读代码.提高我对UI控件的底层认知.顺便加深对C++和Lua的理解.

在使用FairyGui的UI编辑器的过程中,在对UI的抽象和描述上,无数次提高了我对UI的认知.就比如,最惊艳我的:

双向滚动列表中的列表项的横向滚动的实现,是直接将列表项设置为水平滚动,再将滚动模式设置为了页面模式就好了.

就像官网写到的:借助FairyGUI提供的 组件关联控制器 以及 动效,我们可以在不写代码的情况下使用编辑器轻松地制作大量复杂的带有动画效果的自动布局的UI。

再有就是各种list,什么虚拟列表,循环列表,列表的下拉刷新,背包中几行几列的表格,聊天列表,列表东西,双向列表,树形列表,可以说做到了用最少的代码却让ui完全可控.

所以很想深入进去看看fairygui的解析库是如何做到的.

2. 现在工作中用到的项目是基于Cocos2d-Lua 社区版3.6.5的,底层是cocos2d-x 3.3版本的.想在不下整包的情况下用热更新的方式使用上fairygui.

虽然可以将项目中的游戏引擎升级来使用FairyGUI-cocos2dx,然后在做lua的代码绑定.但考虑到自己参与的项目的实际情况,很少更整包且渠道太多.

所以,又想用fairygui的UI编辑器,又不想改C++,只好用lua再写一套了...

如何跑Demo以及项目架构

第一步:参照 http://cocos2d-lua.org/#快速安装指南

  • 下载 Quick-Cocos2dx-Community 3.6.5版本
  • 解压后,如果是Windows系统:双击setup_win.bat即可。
  • Windows: 点击系统在桌面上的 player.exe 快捷方式。

第二步:

  • 下载Fairygui-quickx
  • 如下图所示导入项目

其核心的库代码在src/app/fui目录下,而对应的测试用例,在src/app/scenes目录下.

如果要将fairygui_quickx加入到自己的项目中,只需要将src/app/fui目录下的代码拷贝过去即可.

最后贴一个gif动图

Lua
1
https://gitee.com/uicode_dbliu/fairygui_quickx.git
git@gitee.com:uicode_dbliu/fairygui_quickx.git
uicode_dbliu
fairygui_quickx
fairygui_quickx
master

搜索帮助