cocos2dx是一個基於c++ opengl的二維游戲引擎 開源免費 支持跨平台發布 包括windows linux 安卓 蘋果等等 我想用一個二維引擎入門學習游戲應該是個不錯的選擇 而且這個引擎作品不少 尤其是國內的作品 比如史上最坑爹游戲 捕魚達人(這個游戲作者還專門用這個游戲為例子寫了一本教程)因為個人喜好 一直喜歡在linux(我的ubuntu)上搭建各種平台 這次也不例外 經過各種百度谷歌查找文檔 終於搭建好了 從筆記拿出來分享下
一引擎目錄分析
首先下載引擎源碼 打開查看目錄結構
相關sln的文件不用搭理他們 顯然是vs的模版文件
build-nacl.sh文件我一直沒看懂是干什麼的 求好心人或者相關人士幫忙翻譯下這個文件注釋的英文 (我是沒用到這個文件)
#!/bin/bash
2 # Build script to build all components for Native Client.
3 #
4 # By default this script will only build debug versions.
5 # Pass "all" as an argument to build clean and also build
6 # release config.
7 #
8 # Before running this script you need to set NACL_SDK_ROOT
9 # and add the NaCl compiler bin folder to your path.
10 #
11 # There are several libraries from naclports that are
12 # prerequisite for building cocos2dx on NaCl. The simplest
13 # way to build them is to checkout naclports and run:
14 # $ make png tiff freetype xml2 freealut jpeg vorbis ogg
install-deps-linux.sh 如果你的電腦使用的是deb(ubuntu debain deepin ubuntu火麒麟等等)這個程序可以自動幫你下載編譯這個源碼所需要的庫
Makefile makefile文件 編譯源碼用 不過這個makefile默認只是編譯release版本 不產生debug版本
make-all-linux-project 編譯源碼 這個文件的描述裡面說是比make 快 而且經過測試可以生成debug和release兩種版本的庫
二 編譯引擎:
注意:游戲引擎的源碼有幾行不規范(什麼變量定義沒初始化之類的東西) 但是還用的-Werror選項因此在編譯之前需要修改游戲編譯的原始makefile 將cocos2d/cocos2d-x-2.2.2/cocos2dx/proj.linux/cocos2d.mk 裡面的-Werror去掉 否則編譯不會通過(-Werror表示編譯警告作為錯誤 就是如果有警告的話編譯不會被通過)//這一條找了至少半個小時的谷歌百度 終於在一個英文文檔裡面找到了一個相同錯誤 又找了了幾個小時 把這個錯誤對應的文件找到了 辛苦啊
這一步驟非常簡單 最好執行。/make-all-linux-project 這一條可以執行debug和release兩種庫 方便使用(執行make只產生release也不是不可以)
編譯之後的lib目錄下面就有相關的一堆linux庫了
到此 編譯完成
三創建項目
目錄裡面有個tools文件夾 利用這個文件夾裡面的project-creater
有一個create_project的python腳本 直接python create_project.py 發現需要加上參數 然後按照參數
python create_project.py -language cpp -project Mygame -package com.yujiaao.mygame
(其實這也是linux好處 windows下還要在裝python )
這樣在引擎的project目錄下就會產生你的項目了
四編譯項目 ----linux原生發布(這一部分國內幾乎沒人寫過 完全自己試出來的)
因為是跨平台項目 因此項目的目錄都顯得有些奇葩(至少我是覺得這種目錄很難有一個ide去去識別)classes 存放的是項目源碼(項目核心源碼 平台無關) Resources存放的是項目的資源 剩下幾個proj相關文件就是平台發布相關代碼了
linux下面編譯比較簡單 進入proj.linux 會發現裡面有一個 build.sh 和一個makefile
其實執行./build.sh和make作用幾乎一樣 只不過一個會產生debug版本 一個會產生release版本 還有build.sh 貌似可以在不編譯引擎的情況下直接使用(首先會編譯引擎 然後編譯你寫的源碼)
編譯完成後 你就會發現proj.linux裡面多了個bin目錄 然後裡面會有debug(release)裡面就有程序了 這個程序可以執行
五編譯項目----安卓編譯(這一部分主要是看proj.android裡面的readme 只要readme 看懂了 這部分就ok了 還有紅線部分注意下 不要copy到自己的workspace 不要變動目錄結構)
首先 建議使用adt(就是谷歌官網下的直接帶eclipse的那個)這樣專用的東西比較好配置(還有一個原因 eclipse插件多了特別卡 尤其是你的eclipse上還有別的插件)
給出一個最簡單的配置方法(偷懶不配環境變量)沒有java環境下這麼用最簡單
1下載adt 解壓(帶有eclipse)
2下載ndk 解壓
3下載jdk 解壓(jre更好 直接copy)
4將jdk目錄下的jre整個copy到adt的eclipse 目錄中(eclipse會先自動識別目錄下的jre然後在去找環境變量)
5在eclipse裡面設置ndk的路徑
完成
然後開始工作 進入project.android 可以獲得安卓的導出辦法:
裡面有一個read個me.md 只要照著這個readme做就好了(英語是很重要滴)
主要是設置環境變量
Eclipse->Preferences->General->Workspace->**Linked Resources
裡面添加一個COCOS2DX 值是cocos2dx的根目錄(沒有__max 裡面的那個才是根目錄)
Eclipse->Preferences->C/C++->Build->**Environment**
裡面添加c++的環境變量 NDK_ROOT 指向你的ndk的根目錄
然後File->New->Project->Android Project From Existing Code 導入proj.android 項目
注意:copy project to workspace 這一個選項千萬不要選上 就讓他在默認路徑 這樣才能夠識別Classes文件(不要吧安卓項目copy到你自己的workspace 因為eclipse不會導入Classes 你的源碼)
然後按照方法將cocos2d-x/cocos2dx/platform/android/java 平台下的包拷貝到src目錄下(手動復制粘貼或者用elipse的導入都行 這個是一個java平台的lib代碼)
然後運行發布就行了(這個是安卓平台需要的java源碼 可能是為了節省新建的項目空間 就沒有默認導入而選擇需要手動復制粘貼的方式)
下面是readme英文原文 可以參考:
3. Set up Variables:
1. Path Variable `COCOS2DX`:
* Eclipse->Preferences->General->Workspace->**Linked Resources**
本欄目更多精彩內容:http://www.bianceng.cn/OS/Linux/
* Click **New** button to add a Path Variable `COCOS2DX` pointing to the root cocos2d-x directory.
![Example](https://lh5.googleusercontent.com/-oPpk9kg3e5w/UUOYlq8n7aI/AAAAAAAAsdQ/zLA4eghBH9U/s400/cocos2d-x-eclipse-vars.png)
2. C/C++ Environment Variable `NDK_ROOT`:
* Eclipse->Preferences->C/C++->Build->**Environment**.
* Click **Add** button and add a new variable `NDK_ROOT` pointing to the root NDK directory.
![Example](https://lh3.googleusercontent.com/-AVcY8IAT0_g/UUOYltoRobI/AAAAAAAAsdM/22D2J9u3sig/s400/cocos2d-x-eclipse-ndk.png)
* Only for Windows: Add new variables **CYGWIN** with value `nodosfilewarning` and **SHELLOPTS** with value `igncr`
4. Import libcocos2dx library project:
1. File->New->Project->Android Project From Existing Code.
2. Click **Browse** button and open `cocos2d-x/cocos2dx/platform/android/java` directory.
3. Click **Finish** to add project.
六總結
網上的好多教程極為不清楚 尤其是關於eclipse和安卓的部分 使我誤以為可以直接用eclipse安卓來進行cocos的開發 後來發現不是這樣的 adt只能作為安卓的最後發布方式進行發布 需要寫的代碼還是用c++寫的Classes目錄下的文件 然後用adt編譯即可(當然如果eclipse cpp配置的好用eclipse寫這部分內容最好 但網上的教程一般都只給了安卓的發布方法 而沒有告訴你具體怎麼去開發如果使用linux開發cocos 大概的過程是這樣的:
環境搭建--->新建項目----->使用任意工具(eclipse+cdt(這個得需要一定配置)+或者其他任意ide+或者vim )編寫Classes目錄下的核心文件------->進入porj.android 發布(中間測試可以考慮使用proj.linux做測試也不錯 省著發布到手機了)
其實有點折騰 使用vs的話直接用模版可以用(有個導入模版之類的東西 vs直接新建模版裡面就會有cocos2dx的模版) windows下和蘋果下面還有相關專用ide(不過我的所有開發大都在linux下 習慣了)