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
若是提示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
2.1解決辦法:輸入source /Users/zhaotong/.bash_profile
終于搞好了,打開桌面的MyGame工程
3.發現編譯時出現system報錯,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開發環境!完成了!!!
學習一門新的語言要慢慢學,!!!加油??
////////////////////////////////////倆年后的更新/////////////////////////////////////