基于 Cocos2d-x-lua 的游戏开发框架 Dorothy 简介
2016-07-20 12:57
411 查看
基于 Cocos2d-x-lua 的游戏开发框架 Dorothy 简介
概述
Dorothy是一个在
Cocos2d-x-lua基础上发展起来的分支, 它去掉
Cocos2d-x-lua那些过多的扩展, 并且做了一定程度的优化, 目前提供了以下4种编辑器:
Action Editor: 2D骨骼动画编辑器
Body Editor: 物理编辑器
Effect Editor: 特效编辑器(目前只有粒子系统编辑器)
Scene Editor: 场景编辑器(用于组织游戏逻辑)
它支持
Windows/OSX/iOS/Android多个平台, 一方面用它生成的程序可以跨平台部署, 另一方面它本身也可以跨平台部署, 本文后面会演示如何编译
OSX和
iOS下的
Dorothy.
下面是作者对软件的说明:
Dorothy是Cocos2d-x-Lua的另一个分支,基于原始版本2.1rc0版再次开发的框架。之所以开始在这个版本上做自定义的开发,是因为我在跟随原版的更新,持续做开发的过程中,发现它的功能渐渐变得又多又杂,吸纳了各式各样的扩展,光是骨骼动画的扩展就重复增加了两套代码。并且它的扩展的开发我觉得定制得也不够深入,除了引入更多bug坑以外,并没有简化太多的开发工作。此外原版的Lua接口是几乎完全依赖tolua++自动生成的,导出了很多没有意义的接口,并生成很多冗余的绑定代码,并且tolua++的绑定机制也太过于通用化,没有很好地利用Cocos2d-x的特性。
所以一方面为了精简核心框架,另一方面又提供更加深度定制的辅助框架,优化Lua绑定代码,我渐渐地竟然写出了这样一个分支版本来。
这个分支提供了更加精简的API接口。移除了原版中不是特别核心的扩展功能,添加了更有用的特性,修复了原版的一些bug,并且改善了Lua绑定的核心代码和tolua++生成的绑定代码。
更详细的介绍可以参考作者的博客 Dorothy是什么
下载编译
克隆代码
Dorothy全部开源, 代码托管在开源中国的码云平台 Dorothy, 可以通过如下命令来克隆到本地:
git clone https://git.oschina.net/pig/Dorothy[/code] 操作记录如下:Air:GitHub admin$ git clone https://git.oschina.net/pig/Dorothy Cloning into 'Dorothy'... remote: Counting objects: 18984, done. remote: Compressing objects: 100% (9631/9631), done. remote: Total 18984 (delta 12342), reused 14253 (delta 8531) Receiving objects: 100% (18984/18984), 74.15 MiB | 306.00 KiB/s, done. Resolving deltas: 100% (12342/12342), done. Checking connectivity... done. Checking out files: 100% (1783/1783), done. Air:GitHub admin$
注意: 克隆地址要写成https://的形式, 否则会出错执行编译前脚本
接着要执行一下./Dorothy/tools/tolua++目录下的build.sh命令, 以便生成编译所需要的LuaCode.cpp和LuaBinding.cpp文件, 操作记录如下:Air:tolua++ admin$ ./build.sh Binding files generated! Air:tolua++ admin$ pwd /Users/admin/GitHub/Dorothy/tools/tolua++编译
项目文件保存在./Dorothy/project目录下, 如下所示:Air:Dorothy admin$ cd project/ Air:project admin$ pwd /Users/admin/GitHub/Dorothy/project Air:project admin$ ls -al total 16 drwxr-xr-x 9 admin staff 306 7 18 14:10 . drwxr-xr-x 25 admin staff 850 7 18 14:10 .. -rw-r--r--@ 1 admin staff 6148 7 18 18:55 .DS_Store drwxr-xr-x 4 admin staff 136 7 18 14:06 Classes drwxr-xr-x 11 admin staff 374 7 18 15:33 Resources drwxr-xr-x 17 admin staff 578 7 18 14:06 proj.android drwxr-xr-x 12 admin staff 408 7 18 14:18 proj.ios drwxr-xr-x 5 admin staff 170 7 18 14:11 proj.mac drwxr-xr-x 10 admin staff 340 7 18 14:06 proj.win32 Air:project admin$
其中proj.ios和proj.mac就是我们本次打算编译的, 用XCode 7.3.1打开项目文件, 直接编译即可, 在编译proj.ios时如果连接了真机并且选择了它则可以把生成的目标文件安装到真机上, 这样你就可以在iPad上运行Dorothy了.
注意: 在编译proj.ios时请把XCode的Build Setting中的bitcode选项关闭, 否则会因为一个第三方库文件./lua/lib/ios/libluajit.a没有支持bitcode而导致链接错误.运行界面
主界面:
截图:
最上面一行是4个编辑器
中间是用Dorothy生成的一些例子Action Editor
截图:Body Editor
截图:Effect Editor
截图:Scene Editor
截图:
现在完成度比较高的是Action Editor,Body Editor和Scene Editor,Effect Editor中还有一个帧动画模块没完成.
经过一番研究, 终于明白如何做骨骼动画了, 下一篇介绍如何用Action Editor生成一个2D骨骼动画.示例
在目录./project/Resources/Dev下保存着示例的代码, 如下:Air:Resources admin$ tree Dev/ Dev/ ├── Entry.lua ├── Sample │ ├── Body.lua │ ├── BodyEditor.lua │ ├── DorothyXml.xml │ ├── Moon.moon │ ├── Sensor.lua │ ├── Unit.lua │ ├── Unit1 │ │ ├── bk.jpg │ │ ├── boy.lua │ │ ├── girl.lua │ │ └── miku.lua │ └── Unit1.lua └── Test └── TestBase.lua 3 directories, 13 files Air:Resources admin$
如果已经编译好了, 那么应用程序会读取/Applications/Dorothy.app/Contents/Resources/Dev下的资源, 比较一下, 发现完全一样.Air:Dev admin$ pwd /Applications/Dorothy.app/Contents/Resources/Dev Air:Dev admin$ tree . ├── Entry.lua ├── Sample │ ├── Body.lua │ ├── BodyEditor.lua │ ├── DorothyXml.lua │ ├── DorothyXml.xml │ ├── Moon.lua │ ├── Moon.moon │ ├── Sensor.lua │ ├── Unit.lua │ ├── Unit1 │ │ ├── bk.jpg │ │ ├── boy.lua │ │ ├── girl.lua │ │ └── miku.lua │ ├── Unit1.lua │ └── myXml.xml └── Test └── TestBase.lua 3 directories, 16 files Air:Dev admin$
所以如果想要修改编译好的Dorothy里的例程, 比如新增一个myXml.xml, 直接把新文件拷贝到该目录下的Sample文件夹中即可.使用中发现的问题
因为本项目还在持续更新中, 所以用起来还存在一些小问题
主要是移动端版本的问题
移动端如何导入/导出文件, 比如Action Editor如何导入资源文件, 如何导出模型文件
场景编辑器里的Grapics/Sprite和Graphics/Model打开大多数情况下都是空的
如何把示例编译成独立的应用程序参考
感谢软件作者提供的帮助
Dorothy官方文档
相关文章推荐
- 我所理解的Cocos2d-x 全新的Cocos2d-x3.0
- 六 cocos2dx(3.X)中使用shader
- cocos2dx 3.4 lua加密 和 解密
- cocos2dx 在windows下开启console
- Cocos2d-x 3.0正式版中的数组改为容器
- Cocos2dx 3.0 过渡篇(八)浅谈容器Vector
- Cocos2d-x3.0模版容器详解:cocos2d::Vector<T>
- cocos2d-x v3.0新特性及使用
- CocosCreator坐标代码
- CocosCreator快捷键
- CocosCreator中使玩家移动到点击位置
- CocosCreator获取某个节点
- Cocos2dx-3.x触摸事件之实现人机交互(三)
- CocosCreator运用(一)
- cocos2d-x 3.x sprite使用scale以后获取宽高
- 【Cocos】玩家输入事件
- 【Cocos】系统内置事件
- cocos -js 实现计算器功能
- Cocos Creator 加入CSV 文件
- Cocos 点击事件