DorothyCocos2d-x-Lua 的分支
Dorothy是Cocos2d-x-Lua的另一个分支,基于原始版本2.1rc0版再次开发的框架。之所以开始在这个版本上做自定义的开发,是 因为我在跟随原版的更新,持续做开发的过程中,发现它的功能渐渐变得又多又杂,吸纳了各式各样的扩展,光是骨骼动画的扩展就重复增加了两套代码。并且它的 扩展的开发我觉得定制得也不够深入,除了引入更多bug坑以外,并没有简化太多的开发工作。此外原版的Lua接口是几乎完全依赖tolua++自动生成 的,导出了很多没有意义的接口,并生成很多冗余的绑定代码,并且tolua++的绑定机制也太过于通用化,没有很好地利用Cocos2d-x的特性。
所以一方面为了精简核心框架,另一方面又提供更加深度定制的辅助框架,优化Lua绑定代码,我渐渐地竟然写出了这样一个分支版本来。
这个分支提供了更加精简的API接口。移除了原版中不是特别核心的扩展功能,添加了更有用的特性,修复了原版的一些bug,并且改善了Lua绑定的核心代码和tolua++生成的绑定代码。
下图是 Android 下的运行效果:
特性
移除部分
-
使Cocos2d-x只作为纯粹的图形引擎存在(几乎移除了全部扩展)
-
使Box2D作为唯一的物理引擎(移除了chipmunk)
-
使Lua作为唯一的脚本引擎(移除了Javascript)
-
只将在编写脚本逻辑层面上有意义的接口导出到Lua(Lua的用户不应该需要知道C++层的实现细节来使用脚本接口,为了确定和精简应该导出的接口,我花了数月时间陆续通读了Cocos2d-x的每一个函数实现,最终筛选出一部分我认为真正有必要的类和接口)
评论