您的位置:首页 > 移动开发 > Cocos引擎

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

2014-10-21 11:24 267 查看
bin中包含的是一些创建各个平台新工程的批处理,现在Quick-Cocos2dX还不太完善,日后可能会出和Cococs2D-X一样安装后出现一个模版来方便创建。

doc中包含的是Quick-C2DX中的一些文档、API之类。

framework中包含的就是廖哥封装的一些2DX 类用LUA来方便使用,我们以后创建控件也需要从这个中调用。

lib中就是2DX和一些其他依赖的c++文件。

sample中是Quick-2DX所带的三个例子,我一直在用 CoinFlip 这个例子,因为这个例子基本上包含了网游所需的UI。

simulator中是Quick-2DX所提供的一个Player 该Player 可以无需任何开发环境,例如:Xcode 、VS2010 这类的工具,你可以用记事本,或者一些编码工具例如 SubLime Text 来编辑 Lua 文件保存后就可以直接执行,方便了大家去装什么 MAC 虚拟机这些。目前的Player有Windows 和 Mac 这两个平台。

template包含的就是模版工程,可以用来创建模版,不过我一直都是复制例子然后剪裁。。

README_CN 中就是廖哥送给大家的一些文字,看看很有用的哦。

quickcocos2dx framework

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

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

/////////////////////////////////////////////////////////////

本地化的方式一般有两种形式:

1. 我们自己在app中提供给用户一个语言选择的功能,例如主界面中有一个“语言选择”的按钮,用户点击后进入一个类似列表的UI中,让用户选择“中文”,“英文”…等语言;当用户选择后我们则让程序中的text信息自动选择对应的语言信息文本即可,(或者用户选择语言后自动从我们的server端下载语言资源包灯),此方式相比而言感觉较笨;

2.当用户进入我们的app时,我们根据当前用户当前移动设备的语言自动将我们的app切换对应语言!(虽然此方法省去了用户的选择,而智能判定,但是用户如果需要使用其他语言进行app的话,需要手动去设置手机语言,此方式则相比于第一种形式感觉又不太方便了,不过一般用户不会这么玩咱们的 = =)

/////////////////////////////////////////////////////////////

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目前是否提供呢,如果没有提供只能自己封装了哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: