文章撰寫日期︰2013/06/26 14:19 cocos2dx使用版本︰v 2.0.4 cocosBuilder使用版本︰v 2.0 alpha 1
此篇僅用於cocos2d-x 2.0.4版
如欲在2.1.x版以上建置專案請參閱此篇。
一、前言
雖然cocos2d-x號稱可以跨平臺開發,
但是實際上在使用時,
仍然是看到他們是各別創立cocos2d-x專案。
這個設計對於跨平臺這件事,
實在是有點「半套」的感覺。
要怎麼樣將Android專案和IOS專案合併起來快速編譯開發?
在這邊分享一點我使用到後期的經驗。
二、文章開始
為了讓Android專案的Resource、Class能和IOS專案一起使用,並需將cocos2dx-Xcode專案底下的Class和Resource目錄移到最上層Android/Xcode的共用目錄,
這時候原本在Xcode底下的Info.plist專案就會沒地方去了。
把他移到.xcodeproj專案檔相同目錄,
這些資料夾和檔案的關係在我的工作檔中是這樣子的︰
建立專案的方式,
我建議先從Android專案建立起來。
為什麼?
做下去就知道了。
跨平臺開發的第1步︰create Android專案
首先,先到cocos2dx目錄下,執行create-android-project.sh
假設我們專案名稱命名為Challenge。
執行完後,
順利的話應該會在cocos2dx目錄下,
看到你剛才欲創建的那個目錄。
應該會長成類似底下這個樣子。
我因為很怕日後專案一多,
這樣子創建起來的專案會越來越凌亂,
因此,我將這個專案收納到cocos2dx\workspace底下。
此時路徑變成了cocos2dx\workspace\Challenge。
但也因為這麼做,
我必須要改這個專案(Challenge)底下proj.android\build_native.sh
裡面的設定。(因為我將目錄位置改掉了)
否則你會遇到NDK_MODULE_PATH未定義的這個錯誤。
跨平臺開發的第2步︰
建立Xcode專案
在Xcode專案中,你應該已經將Xcode的cocos2dx template裝好了。
如果尚未安裝者請到cocos2dx底下執行install-templates-xcode.sh
指令是sudo ./install-templates-xcode.sh
安裝好後你應該要在Home/User/你的名字/Library/Developer/Xcode/Templates/cocos2d-x
看到template的檔案,
這樣才能確定你cocos2dx樣版安裝成功。
開啟Xcode,
並建立一個cocos2dx專案
將專案存放在剛才workspace\Challenge底下。
為了讓IOS和Android的Class和Resource共用,
我們將Xcode專案底下的Class和Resource搬到workspace\Challenge底下,
你會看到Android本身就有一些Resource(像icon或什麼的),
將檔案都放在一起吧。
此時xcode應該會岀現遺失了2個目錄的紅色提示,
將他們刪除,
並將新位置的Class和Resource目錄拖進Xcode專案中。
在Finder中,
將Resource\Info.plist檔案拖到IOS專案目錄底下,
並在Xcode重新設定info.plist路徑如下
跨平臺開發的第3步︰
編譯你的Android專案
到你的proj.android目錄底下,執行./build_native.sh,
這邊已經假設你已經安裝並設定好Android NDK和環境變數。
如果上面的設定都有很務實的做到,
這時候Android專案應該是乖乖的在編譯當中的。
這個編譯動作中有一個很重要的事情就是
你要看到build_native.sh編譯了2個靜態c函式庫︰
libcocos2d.a和libgame.so
這樣才代表Android NDK已經幫你把C語言寫岀來的專案編譯完成。
跨平臺開發的第4步︰
在Eclipse中匯入你編譯好的專案
使用import的方式,將剛才編譯好的專案開進Eclipse中。
此時應該會看到專案打著紅色xx,
那是因為每一個我們創建立起來的cocos2dx專案,
都要吃cocos2dx-Library。
並且你會看到isLibrary核取方塊是被打V的,
這代表libcocos2dx是一個Library,
本身並不能被單獨啟動。
將剛才打紅色xx我們編譯後的那個專案HelloCCP,
點擊滑鼠右鍵選擇[Properties],
刪掉錯誤的Library引用,
並add剛才設定好的cocos2dx-Library。
三、結論
經過這些編譯和設定,一個完整同時含有IOS、Android跨平臺開發的cocos2dx專案,
就這麼產生了。
在IOS端,
你只要很單純的在Xcode裡按下run,
即可看到專案的結果。
而在Android端,
每一次都要先使用NDK(build_native.sh)編譯,
才能夠使用編譯後的cocos2dx-Library,
利用OpenGL在Android機器上開啟該畫面。
沒有留言 :
張貼留言