一、下載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
建議選擇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的環境實在是很煩人,花了整整一天的時間才搭建好,期間更是碰到各種亂七八糟的錯誤,所以特地註冊個部落格,就為了把這次艱辛的環境搭建給記錄下來,也
給正在糾結的朋友們提供一些幫助。
慢慢悠悠寫了兩個小時,這是我第一次寫東西,表達的不是很清楚,還請大家見諒,有什麼問題可以回覆給我,有什麼錯誤也請指出。