【iOS-cocos2d-X 游戲開發之一】在Mac下結合Xcode搭建Cocos2d-X開發環境!

cocos2d是OC寫的,cocos2dx是c++寫的

cocos2d只能在ios下運行,cocos2dx是跨平臺的,ios和android平臺都可以運行

cocos2d是外國人搞的,cocos2dx是中國人搞的。

cocos2dx是cocos2d的C++寫法,但是游戲架構是一樣的,都包含了精靈,導演,場景,動作等概念,他們是一脈相承的東西。你可以直接研究cocos2dx,沒有什么障礙。雖然是有了cocos2d才有的cocos2dx,但是cocos2dx包含了cocos2d的主要思想,因此可以直接研究cocos2dx。

所以我們直接指導,結合Xcode搭建Cocos2d-X開發環境!

首先去Cocos2d-X官網下載安裝:http://www.cocos2d-x.org/downloadcocos2dx下載地址

最新版本是:cocos2d-x-3.13.1

打開包,是這樣的:

How to start a new game

1. Download the code from [cocos2d download site][4]

2. Run `setup.py`

3. Run the `cocos` script

Example:

$ cd cocos2d-x

$ ./setup.py

$ source FILE_TO_SAVE_SYSTEM_VARIABLE

$ cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR

$ cd NEW_PROJECTS_DIR/MyGame

一.上面的Example的第一步是$ cd cocos2d-x,在終端里進入到你下載包的根目錄下,我的是:cd /Users/apple/Desktop/cocos2d-x-3.13.1

二.第二步是:./setup.py ? ? ?也就是運行該文件用來配置系統的一些環節變量

三.cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR

3.1:MyGame:新建項目的名稱,我的是:cocos2dxTest

com.your_company.mygame:iOS下項目的包名,我的是:com.aoqic.cocos2dxTest,也就是以后你的x-code里Bundle Identifier的名字,可以根據你們公司的情況填寫


3.2:-l cpp:新建項目使用的編程語言 我的是:-l cpp

3.3:-d NEW_PROJECTS_DIR:保存項目的目錄,我的是:-d /Users/apple/Desktop/cocos2dxTest,也就是你想把帶有cocos2dx的x-code項目保存到你的電腦的哪一個文件夾下面

我的:


終端過程如下圖,成功后打開你的桌面文件夾:/Users/apple/Desktop/cocos2dxTest會發現多了一個文件夾cocos2dxTest這是x-code創建工程下取得項目名稱文件夾名字,打開/Users/apple/Desktop/cocos2dxTest/cocos2dxTest會多了上圖黃色箭頭指向區域的所有文件夾,這就是cocos2dx的內容,打開綠色箭頭就可以打開x-code了。


我的x-code:

要選-moblie下的模擬器版本

command+r運行出現:


好了【iOS-cocos2d-X 游戲開發之一】在Mac下結合Xcode搭建Cocos2d-X開發環境!完成了!!!

學習一門新的語言要慢慢學,!!!加油??

////////////////////////

2017-10-11統一回復更新一下,關于版本升級和安裝失敗的解決辦法

$ cd cocos2d-x

$ ./setup.py

$ source FILE_TO_SAVE_SYSTEM_VARIABLE

$ cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR

$ cd NEW_PROJECTS_DIR/MyGame

1.在官網下載最新版本的cocos2d-x-3.16后,打開終端進入cocos2d-x-3.16文件夾后執行./setup.py出現:IOError:[Errno 13] Permission denied '//.bash_profile'

1.1解決辦法:是因為權限不夠用sudo ./setup.py

./就是當前路徑下 setup.py文件名字 連起來就是在當前路徑下執行setup.py這個文件 但是如果這個文件沒有執行權限是不能執行的

若是提示Please enter the path of ANDROID_SDK_ROOT (or press Enter to skip):是讓你按enter跳過不需要ANDROID_SDK_ROOT

2.接著出現:Please execute command: "source /Users/zhaotong/.bash_profile" to make added system variables take effect

sjhzdeMacBook-Air:cocos2d-x-3.16 zhaotong$ cocos new MyGame -p com.yjs.mygame -l cpp -d /Users/zhaotong/Desktop/1011cocosed-x

-bash: cocos: command not found

source /Users/zhaotong/.bash_profile 環境變量修改之后,需要執行source讓其生效

2.1解決辦法:輸入source /Users/zhaotong/.bash_profile

source /Users/zhaotong/.bash_profile

終于搞好了,打開桌面的MyGame工程

3.發現編譯時出現system報錯,Call to unavailable function 'system': not available on iOS

Call to unavailable function 'system': not available on iOS

3.1解決辦法:

https://github.com/cocos2d/cocos2d-x/issues/17907

原因:XCode9 將system API刪除,用 ntfw API替換,如下:

//在 #include <dirent.h>下方添加

#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)

#include <ftw.h>

#endif

// ? 在 removeDirectory方法上方添加

namespace

{

#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)

int unlink_cb(const char *fpath, const struct stat *sb, int typeflag,const struct stat *sb, int typeflag,

struct FTW *ftwbuf)

{

int rv = remove(fpath);

if (rv)

perror(fpath);

return rv;

}

#endif

}

//將 removeDirectory方法替換為 :

bool FileUtils::removeDirectory(const std::string& path){

#if !defined(CC_TARGET_OS_TVOS)

#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)

if (nftw(path.c_str(), unlink_cb, 64, FTW_DEPTH | FTW_PHYS) == -1)

return? false;

else

return? true;

#else

std::string command = "rm -r ";

// Path may include space.

command += "\"" + path + "\"";

if (system(command.c_str()) >= 0)

return? true;

else

return? false;

#endif // (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)

#else

return? false;

#endif // !defined(CC_TARGET_OS_TVOS)

}

最終運行成功:

修改demo:https://github.com/mrzhao12/cocos2d-X

好了【iOS-cocos2d-X 游戲開發之一】在Mac下結合Xcode搭建Cocos2d-X開發環境!完成了!!!

學習一門新的語言要慢慢學,!!!加油??

////////////////////////////////////倆年后的更新/////////////////////////////////////


1


2


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容