Quick-Cocos2d-X 核心framework 目录结构与功能介绍
在前一篇文章 Quick-Cocos2D-X 并成功运行示例代码 中我们介绍了 Windows 下,从下载,熟悉工程包中每个目录的用处,成功使用 Quick-Cocos2d-X 所带的Player成功运行示例代码,并创建工程的快速启动图标。
在本文中,我们将要去了解 Quick-Cocos2d-X 的核心,也就是之前文章中介绍的 famewrok 文件夹中的那些“.lua”。
首先我们打开 framework 文件夹
我们看到了,frameWork 中 有三个文件夹。分别是 clinet(客户端)、server(服务)、shared(共享组件)。没错,整个 Quick-Cocos2d-X 框架就是由这三大部分来组成的。
我们先打开 client
client 中有11个.lua文件和2个文件夹,Cocos2dx 文件夹中包含了:CCLayer、CCNode等等这些类的一些扩展(就是添加了一些框架的方法)。而 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
本文出自 “张鹏飞” 博客,谢绝转载!