[cocos2d-x 2.0.x版]開啟一個跨平臺開發的專案

文章撰寫日期︰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機器上開啟該畫面。

相關文章

1. 在cocos2d-x 2.1.x / 3.x 版建置全新的專案