ubuntu 下 cocos2dx游戏引擎搭建 编译和使用(可以在linux桌面 安卓手机运行)
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**
* 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下 习惯了)