從cocos2d-x-2.x到cocos2d-x-3.x: lua項目配置

來源:互聯網
上載者:User

標籤:android   style   http   java   color   使用   

cocos2dx-x3.0的正式版出來也有一段時間了,現在最新的版本是到了3.2alpha,和2.x系列相比,能夠找到的相關資料除了官網上的wiki,其他的也不見得多,遇到的一些和2.x的差異和問題在這裡記錄下來備忘。

和2.x的shell指令碼相比,3.x系列的配置全部python化了,最大的好處當然是跨平台,在windows下面也可以脫離cywin進行android版本的編譯,雖然ios版本還是離不開xcode,但是可以mac和win分別編譯不同版本的感覺還是不錯的,省時省力。

先從python開始,在3.x的lua項目中除了android版本的編譯,還有一個更重要的部分是lua-binding的產生,與2.x要在tolua++中手寫.pkg檔案不同,3.x所採用的bindings-generator(位於cocos2d-x/tools下)基本上是全自動解析的,自己新加入的一些需要綁定的cpp類只需要添加(獨立於cocos2d-x模組外的部分)或修改(修改cocos2d-x自身)一下cocos2d-x/tools/下的ini檔案即可,確實方便了不少,但是相對的配置的麻煩也出來了。

想要通過執行cocos2d-x/tools/tolua/下的genbindings.py來產生對應的繫結檔案(位於cocos2d-x\cocos\scripting\lua-bindings\auto,也可以通過修改genbindings.py檔案來產生到不同路徑下),就得先準備好python,python的兩個外掛程式,ndk。這裡的python也可以用於3.x專案檔的產生以及android版本的編譯,項目產生在後面再說,雖然有些因果倒置,但是還是提前從這裡入手。

在cocos2d-x\tools\tolua下面的README.mdown以及官網的wiki上有記載怎麼樣安裝,這裡單獨說一下windows版的配置,就windows版需要手動diy的部分比較多:

1.readme中說需要的是ndk:android-ndk-r9b,現在官網最新的版本是android-ndk-r9d,建議用最新版本,根據作業系統選擇32位或64位的版本,要和後面的adt和jdk保持一致,但是如果用r9c和r9d的話,需要將tolua下的ini裡面的android_headers中的4.7改為4.8,這也就是為什麼readme中要求用r9b的原因,(另外提一句如果用r9c在產生的時候還會出錯,需要根據報錯的地方修改ndk中對應的math.h檔案注釋掉出錯的那一行),下好後解壓,然後將解壓的路徑新增到環境變數的NDK_ROOT中

2.安裝python, (32bit) from (http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi). 這個就嚴格按照要求來,注意是32位版本的,64位版本的裝不了所需的兩個外掛程式。裝好後將python的安裝路徑加到環境變數PATH裡,重開cmd命令列輸入python看看有沒有即可驗證。接著裝pyyaml: http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe 以及pyCheetah :https://raw.github.com/dumganhar/cocos2d-x/download/downloads/Cheetah.zip, 下下來解壓到 python路徑的“Python27\Lib\site-packages”裡

這樣一來就萬事俱備了,在cmd的tolua路徑下運行python genbindings.py,然後就可以產生lua綁定了。

說完這個,回到開始的項目配置,python這個主角已經裝好了,ndk也入住了,要通過cocos2d-x下面的setup.py產生新項目還需要一些其他的東西,基本都是用來編譯android項目的:

adt:Android Development Tools,注意32位還是64位的版本,和ndk以及jdk保持一致,這個決定了android的api level,可以通過附帶的skdmanager來下載不同版本android的api用於編譯。下載好後解壓,然後在環境變數中新增ANDROID_SDK_ROOT指向此路徑下的sdk目錄。以後可以用這個裡面的eclipse來debug產生的android項目

jdk:Java SE Development Kit,依然注意32位還是64位版本,和ndk以及adt保持一致,一定是jdk,僅有jre是不行的。下載好後安裝,安裝完成後在環境變數中新增JAVA_HOME指向此路徑,可以在cmd中輸入java和javac都能有輸出來驗證

ant:Apache Ant,用於輔佐編譯android項目(Apache Ant is a Java library and command-line tool that help building software),下載好後加壓,在環境變數中新增ANT_ROOT指向此路徑下的bin目錄,然後再加入PATH中,可以在cmd中輸入ant驗證

最後,添加一個環境變數COCOS_CONSOLE_ROOT指向“cocos2d-x-3.x\tools\cocos2d-console\bin”這個路徑,然後就可以在cmd中到cocos2d-x-3.x的路勁中運行python setup.py。這樣一切都搞定了(?),在cmd中運行cocos,可以建立項目,編譯項目等等一條龍服務。建立一個新項目:cocos new MyGame -p com.MyCompany.MyGame -l lua -d ./MyCompany ,-p後面接的是android的包名, -l可以選擇cpp或者lua,-d就是目錄了,這樣實際上是根據不同的項目模板(cocos3.x/tests下面)來產生新的工程設定檔。

產生之後cmd進入該目錄,可以輸入cocos compile -h看看編譯的參數表,3.2alpha新增了不少選項,有待嘗試。-p android可以產生android項目,--ap 後面的參數就是adt裡android的api level,還有一個比較有用的--ndk-mode,除了debug和release以外還可以選擇clean作為參數重新編譯項目。

cocos這個命令所用到的python檔案都在cocos2d-x-3.x\tools\cocos2d-console下面,編譯android的在plugin目錄下的project_compile/build_android.py,如果要添加其他需要編譯的路徑(比如說自己要用的cpp庫),就可以修改這個檔案,加入新的路徑到NDK_MODULE_PATH

 

相比cocos2d-x-2.x那個windows系統需要在cywin下啟動並執行build_native.sh來編譯android工程,新的基於python的設定檔要更加自動化,指令碼化一些,雖然在最開始也感覺這個cocos命令一下整合了許多的功能讓人不知道從何下手,還不如2.x時候一個檔案來得直接(3.x也可以一個檔案,就是build_android.py來搞定,稍加配置然後python build_android.py -p apilevel myGame即可),但是經過一段時間的使用,無論從lua的綁定還是自動編譯的過程而言,3.x這套指令碼配置確實要進化了很多,當然,3.x相對於2.x進化的不只是在這方面,還有許多新的feature(坑)加入,這個請聽下回分解。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.