Quick-Cocos2d-X 核心framework 目录结构与功能介绍

   在前一篇文章 中我们介绍了 Windows 下,从下载,熟悉工程包中每个目录的用处,成功使用 Quick-Cocos2d-X 所带的Player成功运行示例代码,并创建工程的快速启动图标。

   在本文中,我们将要去了解 Quick-Cocos2d-X 的核心,也就是之前文章中介绍的 famewrok 文件夹中的那些“.lua”。

   首先我们打开 framework 文件夹

   我们看到了,frameWork 中 有三个文件夹。分别是 clinet(客户端)、server(服务)、shared(共享组件)。没错,整个 Quick-Cocos2d-X 框架就是由这三大部分来组成的。

   我们先打开 client

   client 中有11个.lua文件和2个文件夹,Cocos2dx 文件夹中包含了:CCLayerCCNode等等这些类的一些扩展(就是添加了一些框架的方法)。而 API 文件夹中就比较重要了,我们打开API文件夹。

gamenetwork

   中目前只有 OpenFeint 他是一个第三方的库,它提供了社交功能,例如:排行榜。

GameState.lua

   用于保存游戏的状态,例如:存档游戏设置

Localize.lua

   用于进行游戏本地化,现在的版本中里面只包含文字的本地化,还没有图片本地化

Store.lua

   中提供了游戏内的计费功能。

Timer.lua

   这个是基于 2D-X 中 scheduler 计时器的一个扩展,他可以方便的管理各个计时器,并添加了一些方便的功能,例如:100秒的时间,每5秒调用触发一次计时器事件。

到这里我们就介绍完 API文件夹中的功能了,我们回头看下 client下的其他组件。

audio.lua

   中提供了我们客户端中的背景音乐和音效的播放,音量控制等功能。

crypto.lua

   提供了我们常用的加密 AES、XXTEA、Base64、MD5。

device.lua

   提供了获取当前平台、获取UUID打开URL提示框,这些平台化的功能。

display.lua

   这个组件提供的功能是很重要的,包括场景精灵动画这些游戏中必要的组件,因这个中功能比较重要,后面我会专门来介绍这其中的使用方法。

luaj.lua

   提供了我们在Android平台时调用JAVA,该组件可以调用 JAVA 中的静态方法、JAVA调用Lua的方法、可以带参数

luaOC.lua

   提供了我们在iOS平台时调用Objective-C,该组件可以调用Objective-C中的静态方法,可以带参数。目前还没有Objective-C调用LUA的函数。

network.lua

   提供了发送HTTP请求,目前只是这样 。

scheduler.lua

   提供了2D-X中的一些计时器、回调功能。不过用了这个框架,推荐使用Timer

transition.lua

   提供了我们游戏中常用的Move(移动),Fade(渐变)、Sequcene(动作序列) 等等动作相关的功能。

ui.lua

   提供了游戏中Menu(菜单)、Label(标签)等等用来交互的组件。

由此可见,Clinet 中的组件构成了游戏的显示,网络连接、动画、与平台之间通信,等等功能。那么我们看下 server 中又有什么奥秘呢?

打开server

   可以松一口气了,没有 Client 中那么多的组件了。。

   Server 中包含了6个.lua 和一个文件夹resty

   首先我们还是先来看 resty 中的内容

http.lua

   提供了我们需要用到 Http 中的一些相关方法,会有后续介绍。

mysql.lua

   提供常用的数据库操作,在Lua中调用的接口。

url.lua

   提供了URL的解析相关Lua的接口。

   上述的这些组件只是为了方便server调用。

   server这块目前鹏飞还没有过多的使用过,过后会陆续添加进来。下面我们来看下shared中提供了哪些组件。

   打开 shared

debug.lua

   提供了我们在程序中输出log错误信息,并支持跳转断言等功能方便我们来进行一些错误的查找。

errors.lua

   提供了Debug.lua中输出错误信息相关的支持。

functions.lua

   提供了我们在Lua中创建一个自定义类的快捷方法class、克隆等功能。重要

json.lua

   提供了解析JSON,还有生成JSON的方法。

ModelBase.lua

这个组件提供的功能很实用,它是一个数据模型,可以方便的从表中抽出例如:怪物的属性 ,***力 这种数据。

到这里,我们基本上把 Quick-Cocos2d-X目前所提供的功能都了解了一遍,大家可以看过这个之后了解下您所需要的功能,Quick-2D-X目前是否提供呢,如果没有提供只能自己封装了哦。

CocoStudio   讨论学习群:141444261

Cocos2D-X   讨论学习群:244959010