这是一个基于cocos2d-x完全用Lua来编写的游戏框架,旨在快速开发手机2D游戏。 目前测试已经可以支持cocos2d-x 3.0 ~ 3.2版本。 Github地址:https://github.com/yestein/cocos-lua PS:目前此框架还在完善中,如果你喜欢它,欢迎随时与我在这里交流。

为什么要做这个?

其实之前就听闻有一个“quick cocos2d-x”的项目,也是采用的Lua,顾名思义目的就是为了提高开发者的效率。对这个项目使用了一番,觉得它做的那个模拟器机制是个不错的想法。对它这个框架的有些核心思想不是太认同,主要是这个框架对cocos2d的源码进行过修改,而不是一个纯粹的lua级框架,这样做势必自己必须要有一个cocos2d-x的分支,这样会带来一个很要命的问题——在cocos2d-x进行功能增加或者bug修复的时候,需要做大量的工作来将他们合并入自己的分支。 所以最后还是选择了自己来写一套基于cocos2d-x的纯粹的Lua级的框架,针对开发过程中开发者一般都会遇到需要解决的问题做了框架级的封装,使我们可以将更多的心思花在项目的逻辑上,而不用关心太多cocos2d的细节。 以下是这套逻辑框架里的主要几个思路: 1. 这个框架除了提供对cocos2d进行一系列的Lua封装之外,还提供一套逻辑构建解决方案。 2. 画面渲染部分与游戏逻辑部分要区分开,最严格的标准就是逻辑代码里不应该有一行与cocos2d相关的代码。 3. 模块之间的协同工作的模块尽量通过事件通信,以此降低耦合。这就要求使用者在设计模块层面将此考虑进来,不然会很痛苦。事件名采用字符串(可采用一定规则来凸显,如“模块名.事件名”这种),契合Lua高效的字符串比对。 4. 模块内部采用消息机制,对一个模块发送消息,模块会将消息层层分发下去,除非中途有某个子模块处理完后宣布需要独吞此消息。 5. 尽量使用小模块的拼装组合来实现更大的模块,并借助消息机制来处理各自的问题。 6. 所有的逻辑都是由一个个的小逻辑节点层层堆叠出来,尽量避免大而全的自顶向下的逻辑设计。