从关注cocos2dx开始就很想有一个linux版,很多人觉得没什么意义 游戏开发不管怎么样都要用到windows平台,linux编程也不是游戏程序员的必修课.
但我个人比较喜欢linux 在linux这个完全gcc的环境下比在windows上模拟一个gcc环境开发android游戏要轻松的多(google不喜欢微软.我也不太喜欢),、
另外,任何成熟的开源跨平台游戏引擎都支持linux,甚至是在unix环境下开发出来的.帮助cocos2dx补上这个窟窿,我觉得还是挺值得。
eclipse也是我长久以来的爱,从大学时代的java编程到现在的c++开发我的IDE基本没怎么变过就是eclipse。eclipse3.7 CDT功能和vs功能相比较,可能有过之而无不及吧,(3.7也部分支持像java一样的自动查错的功能,就是还有bug),linux版做出来我还可以移到cgywin的windows模拟环境中,和macosx的gcc环境中,eclipse对这些平台都支持的不错.
在ubuntu下linux版已经基本成型(至少能完成大部分的功能),除了中文的支持(由于freetype要用unicode字符集和对中文进行一些特殊处理)
版本可以从github上git clone
具体命令:
git clone https://github.com/laschweinski/cocos2d-x.git
然后转具体的branch:
git checkout LinuxPort
增加了一些新的文件和文件夹
基本上还是按cocos2dx他们的做法作,文件夹的结构没有太大区别,(为此我放弃了把动态库文件和头文件放到/usr/lib里这个传统的linux方式.)只增加了些文件:
1. mycreate-android-project.sh 和 template/android/mycopy_files.sh 和create-android-project.sh 作用差不多,建立一个可以在别的文件夹下的android和linux共有的eclipse项目,
具体的作法下篇再说.这里涉及到一些android ndk standalone编译的作法
2. lib目录: 将编译好的各种cocos2dx的动态库或静态库放到该目录, 我不太喜欢,一个项目把引擎的源代码也引进来,clean以后就会重编译整个引擎和项目文件浪费时间.
3. cocos2dx/.cproject 和cocos2dx/.project (隐藏文件,打开后可以看到)eclipse的项目文件. eclipse下import cocos2dx进来可以看到项目. 同样,在HelloWorld,test CocosDenshion中 也有各自的这两个文件
4.cocos2dx/Debug, cocos2dx/Release.... eclipse编译出来的build文件夹 里面有makefile 可以make进行编译.
5. CocosDenshion里也类似也有eclipse的项目文件
依赖的库
和cocos2dx windows系统也依赖EGL和GLES不同 linux版依赖glfw用的也是opengl版而不是opengles版.
编译之前要先安装glfw这个库到系统
在ubuntu下可以
sudo apt-get install libglfw-dev
另外png也需要zlib的支持 但是一般的linux环境都有
声音依赖fmod库 gpl协议 所以linux版不能用于商业, 看重的是它的mp3格式的支持
该库是编译成动态库 所以最好要把它放到/usr/lib下
运行sudo sh installLinuxLib.sh 将该声音库文件引进去。
编译和运行:
我都在eclipse上编译,暂时没有给出传统的makefile的编译方式,用eclipse编译项目.
首先编译cocos2dx库
eclipse上File->import->exsisting projects
select root directory Path to cocos2dx/cocos2dx/proj.linux
编译之, 编译后会把编译后的动态库放到 Path to cocos2dx/lib/linux里
运行HelloWorld
引入项目:目录为:Path to cocos2dx/HelloWorld/linux
然后配置cocos2dx所安装的目录, 为了能找到头文件和库文件目录:
在项目右击preference-》c/c++ Build->Build variables 在变量那更改Value为: Path to cocos2dx/ 如下图
这里/home/laschweinski/git/cocos2d-x是我的cocos2d-x根文件夹
ps: 这里配置的这个项 之后用mycreate-android-project.sh 建立linux和android eclipse捆绑项目的时候,会把HelloWorld当作目录 复制项目文件 所以这里配置了,之后建项目也是有效的.
重新编译即可运行:(AndroidDebug和AndroidRelease 是给android用的,肯定失败)
编译运行test
引入项目:目录为:Path to cocos2dx/tests/test.linux
运行如图:
建立自己的项目和android standalone项目下篇介绍
另外对于调试cocos2dx的库文件,只要把库项目也一并放入的eclipse的workspace里,也是可以调试的
版本也不是最终版本,如果有修改我会在这里进行修改.。
我的处子博文 本来就对作文表达很怵的我表示压力很大。。。。