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