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目前是否提供呢,如果沒有提供只能自己封裝了哦。