Mac下配置cocos2d-x開發環境(android和ios)

ookcode發表於2013-07-25

一、下載cocos2d-x

http://cocos2d-x.org/projects/cocos2d-x/wiki/Download

cocos2d-x-2.1.4.zip @ June.18, 2013

我們可以看到最新版本的2.1.4,這個版本提供了一個用python命令來建立各平臺的專案,十分便利

下載,解壓(建議解壓到主目錄下的)

--------------------------------------------------------------------------------------------------------

更新:

本教程適用於現在更新到的2.2.3版本,3.0版本暫未實驗,有興趣的可以試試。

-------------------------- ------------------------------------------------------------------------------

二、下載python

http://www.python.org/getit/

建議選擇2.7.5版本的下載

Python 2.7.5 Mac OS X 64-bit/32-bit x86-64/i386 Installer
Python 2.7.5 Mac OS X 32-bit i386/PPC Installer

下載,安裝,然後在終端直接輸入python,如果出現版本資訊則安裝成功。

 

三、建立cocos2d-x專案

進入終端,執行以下命令

cd ~/cocos2d-x-2.1.4/tools/project-creator/
python create_project.py -project game01 -package com.ookcode.game -language cpp

create_project.py要求提供3個引數(工程名:我這裡是game01,包名:我這裡是com.ookcode.game,語言:cpp | js | lua)

執行成功會顯示以下資訊

proj.ios        : Done!
proj.android        : Done!
proj.win32        : Done!
proj.mac        : Done!
proj.blackberry        : Done!
proj.linux        : Done!
proj.marmalade        : Done!
New project has been created in this path: /Users/ookcode/cocos2d-x-2.1.4/projects/game01
Have Fun!

進入game01目錄,你可以看到這些專案

Classes    
Resources        
proj.android    
proj.ios    
proj.mac    
proj.win32
proj.blackberry    
proj.linux    
proj.marmalade

怎麼樣,全平臺都給你搭好了,而且共用一個Classes資料夾,也就是說你在一個平臺更新了程式碼,全平臺都得到了更新。

 

四、編輯ios專案

進入game01/proj.ios/目錄,直接雙擊開啟game01.xcodeproj(別說你沒裝xcode)

然後點run就可以跑起來了

我在這裡曾經犯了一個很2的錯誤,就是一直在cocos2dx這個目錄下run,死活跑不起來

這裡要選中game01,不然就變成一直在build cocos2dx了

這個HelloWorldScene.cpp就是你的程式碼了,你可以自己修改,不過由於所有平臺用的都是這個,所以改了之後記得在其他平臺也跑下

 

五、編輯安卓專案(重點,這個比較複雜)

1.下載ADT Bundle

http://developer.android.com/sdk/index.html

(解壓到主目錄,重新命名為adt-bundle,為了下面寫路徑方便)

2.下載NDK(目前最新版本是:android-ndk-re8)

http://developer.android.com/tools/sdk/ndk/index.html

(解壓到主目錄)

3.為Eclipse安裝CDT外掛

開啟eclipse,選擇選單Help/Install New Software

在Work With下拉框中選擇自己eclipse的版本名,然後在外掛裡選中Programming Languages,開啟下拉選單

選擇C/C++ Development Tools安裝,重啟eclipse

這是你可以新建一個c++的HelloWorld專案試一試

 

當你執行的時候可能會有如下錯誤:

gcc: command not found

g++: command not found

開啟xcode->preferences->Downloads

你需要下載安裝Command Line Tools,安裝完成後,重啟Eclipse,然後重新執行那個c++專案,你會在Console中看到久違的HelloWorld!

4.配置全域性變數

進入終端,執行以下命令

vim ~/.bash_profile

按i進行編輯,輸入以下路徑

export COCOS2DX_ROOT=/Users/ookcode/cocos2d-x-2.14/
export NDK_ROOT=/Users/ookcode/android-ndk-r8e
export ANDROID_NDK_ROOT=/Users/ookcode/android-ndk-r8e
export ANDROID_SDK_ROOT=/Users/ookcode/adt-bundle/sdk
export PATH=$ANDROID_NDK_ROOT:$PATH
export PATH=$ANDROID_SDK_ROOT:$PATH

按ESC,再輸入:wq 儲存並退出(基本的vi命令要會)

******這裡是我的路徑,切記得換成你自己的*******

5.用NDK編譯android專案

進入終端,執行以下命令

cd ~/cocos2d-x-2.1.4/projects/game01/proj.android
./build_native.sh

然後就是漫長的編譯

Compile++ thumb  : cocos2dcpp_shared <= main.cpp
Compile++ thumb  : cocos2dcpp_shared <= AppDelegate.cpp
Compile++ thumb  : cocos2dcpp_shared <= HelloWorldScene.cpp
Compile++ thumb  : cocos_extension_static <= AssetsManager.cpp
Compile++ thumb  : cocos_extension_static <= CCBFileLoader.cpp
………
………

當看到

Install        : libcocos2dcpp.so => libs/armeabi/libcocos2dcpp.so
make: Leaving directory `/Users/ookcode/cocos2d-x-2.1.4/projects/game01/proj.android'

就編譯成功了

6.匯入android專案

在eclipse中右鍵,new->project

 

選擇Android Project from Existing Code

Browse到game01的proj.android目錄

匯入進來後我們發現有這樣的錯誤

這是由於cocos2dx的檔案沒用正確的包含進來

右鍵專案->properties->Java Build Path

在Source裡點Link Source

Browse到/cocos2d-x-2.1.4/cocos2dx/platform/android/java/src

然後隨便取個名字,確定,剛才的錯誤就消除了!

--------------------------------------------------------------------------------------------------

2013年7月31日更新:

可以直接把/cocos2d-x-2.1.4/cocos2dx/platform/android/java當做一個安卓工程匯入,然後都不用設定Link Source,一勞永逸!

--------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------

如果想直接使用Elicpse來編譯的話,會提示please define NDK_ROOT錯誤。

這時可以右鍵專案->Properties->C/C++ Build->Environment->Add...->新建一個NDK_ROOT,輸入你的NDK路徑,完成

這樣直接右鍵專案Build Project就能完成編譯

--------------------------------------------------------------------------------------------------

7.建立AVD模擬器

注:cocos2d-x需要4.0.3以上的模擬器才能執行,真機無所謂

建立AVD是記得勾選Use Host GPU

右鍵專案->Run As -> Run Configurations-> Target

在最底部輸入

8.執行專案

右鍵專案-> Run As -> Android Application

然後選擇剛才建立的AVD,然後你可以去先喝杯茶(模擬器啟動那叫一個慢~

9.編輯專案

建議eclipse裡面寫c++的程式碼, CDT真受不了。

前面說過,全平臺的專案是共用一個classes的,所以,我們可以用xcode開啟那個ios的專案

開啟HelloWorldScene.cpp這個檔案,我們進行一些簡單的修改

找到這行程式碼,我們給他修改一個字型

CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);

改成

CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "fonts/Marker Felt.ttf", 128);

你可能會奇怪,為什麼字型要這樣寫"fonts/Marker Felt.ttf"

如果是要ios支援的話直接寫Marker Felt就行,不過安卓卻不能這樣,我們可以看到,安卓專案的目錄下有個fonts目錄,所以得按這種寫法來獲得安卓的支援

(不過我疑惑的是,ios明明沒用fonts這個目錄,它是怎麼判斷出是這個字型的)

10.執行修改過的專案

在xcode中點選Run

發現了麼,字型改變了!

然後接著是android專案,因為修改了程式碼,所以必須重新編譯一次

再次進入終端,輸入以下程式碼

cd ~/cocos2d-x-2.1.4/projects/game01/proj.android
./build_native.sh

這次不會想上一次編譯一樣花那麼久,因為不會再編譯一次cocos2dx的程式碼

Using prebuilt externals
make: Entering directory `/Users/ookcode/cocos2d-x-2.1.4/projects/game01/proj.android'
Compile++ thumb  : cocos2dcpp_shared <= HelloWorldScene.cpp
SharedLibrary  : libcocos2dcpp.so
Install        : libcocos2dcpp.so => libs/armeabi/libcocos2dcpp.so
make: Leaving directory `/Users/ookcode/cocos2d-x-2.1.4/projects/game01/proj.android'

出現以上程式碼就表示編譯成功了

我們再回到eclipse,右鍵專案->Run As -> Android Application

 

 

六、結束語

  cocos2d-x的環境實在是很煩人,花了整整一天的時間才搭建好,期間更是碰到各種亂七八糟的錯誤,所以特地註冊個部落格,就為了把這次艱辛的環境搭建給記錄下來,也

給正在糾結的朋友們提供一些幫助。

  慢慢悠悠寫了兩個小時,這是我第一次寫東西,表達的不是很清楚,還請大家見諒,有什麼問題可以回覆給我,有什麼錯誤也請指出。

相關文章