Quick-Cocos2d-X 核心framework 目錄結構與功能介紹

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 文件夾

014043758.png

   我們看到了,frameWork 中 有三個文件夾。分別是 clinet(客戶端)、server(服務)、shared(共享組件)。沒錯,整個 Quick-Cocos2d-X 框架就是由這三大部分來組成的。

   我們先打開 client

014102344.png

   client 中有11個.lua文件和2個文件夾,Cocos2dx 文件夾中包含了:CCLayerCCNode等等這些類的一些擴展(就是添加了一些框架的方法)。而 API 文件夾中就比較重要了,我們打開API文件夾。

014116602.png

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

014159574.png

   可以鬆一口氣了,沒有 Client 中那麼多的組件了。。

   Server 中包含了6個.lua 和一個文件夾resty

   首先我們還是先來看 resty 中的內容

014222555.png

http.lua

   提供了我們需要用到 Http 中的一些相關方法,會有後續介紹。


mysql.lua

   提供常用的數據庫操作,在Lua中調用的接口。


url.lua

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

   上述的這些組件只是爲了方便server調用。


   server這塊目前鵬飛還沒有過多的使用過,過後會陸續添加進來。下面我們來看下shared中提供了哪些組件。


   打開 shared

014238361.png

debug.lua

   提供了我們在程序中輸出log錯誤信息,並支持跳轉斷言等功能方便我們來進行一些錯誤的查找。


errors.lua

   提供了Debug.lua中輸出錯誤信息相關的支持。


functions.lua

   提供了我們在Lua中創建一個自定義類的快捷方法class、克隆等功能。重要


json.lua

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


ModelBase.lua

這個組件提供的功能很實用,它是一個數據模型,可以方便的從表中抽出例如:怪物的屬性 ,攻擊力這種數據。


到這裏,我們基本上把 Quick-Cocos2d-X目前所提供的功能都瞭解了一遍,大家可以看過這個之後瞭解下您所需要的功能,Quick-2D-X目前是否提供呢,如果沒有提供只能自己封裝了哦。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章