一、下載cocos2d-x
http://cocos2d-x.org/projects/cocos2d-x/wiki/Download
cocos2d-x-2.1.4.zip @ June.18, 2013
我們可以看到最新版本的2.1.4,這個版本提供了一個用python命令來建立各平台的項目,十分便利
下載,解壓(建議解壓到主目錄下的)
二、下載python
http://www.python.org/getit/
建議選擇2.7.5版本的下載
Python 2.7.5 Mac OS X 64-bit/32-bit x86-64/i386 InstallerPython 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/game01Have Fun!
進入game01目錄,你可以看到這些項目
Classes Resources proj.android proj.ios proj.mac proj.win32proj.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-r8eexport ANDROID_NDK_ROOT=/Users/ookcode/android-ndk-r8eexport ANDROID_SDK_ROOT=/Users/ookcode/adt-bundle/sdkexport PATH=$ANDROID_NDK_ROOT:$PATHexport 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.cppCompile++ thumb : cocos2dcpp_shared <= AppDelegate.cppCompile++ thumb : cocos2dcpp_shared <= HelloWorldScene.cppCompile++ thumb : cocos_extension_static <= AssetsManager.cppCompile++ thumb : cocos_extension_static <= CCBFileLoader.cpp
………
………
當看到
Install : libcocos2dcpp.so => libs/armeabi/libcocos2dcpp.somake: 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,一勞永逸!
--------------------------------------------------------------------------------------------------
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 externalsmake: Entering directory `/Users/ookcode/cocos2d-x-2.1.4/projects/game01/proj.android'Compile++ thumb : cocos2dcpp_shared <= HelloWorldScene.cppSharedLibrary : libcocos2dcpp.soInstall : libcocos2dcpp.so => libs/armeabi/libcocos2dcpp.somake: Leaving directory `/Users/ookcode/cocos2d-x-2.1.4/projects/game01/proj.android'
出現以上代碼就表示編譯成功了
我們再回到eclipse,右鍵項目->Run As -> Android Application
六、結束語
cocos2d-x的環境實在是很煩人,花了整整一天的時間才搭建好,期間更是碰到各種亂七八糟的錯誤,所以特地註冊個部落格,就為了把這次艱辛的環境搭建給記錄下來,也
給正在糾結的朋友們提供一些協助。
慢慢悠悠寫了兩個小時,這是我第一次寫東西,表達的不是很清楚,還請大家見諒,有什麼問題可以回複給我,有什麼錯誤也請指出。
我現在也在學cocos2d-x,不知道有沒有朋友能一起交流-。-(本人93年大2屌絲,技術宅,未婚,木有妹紙0.0)