(一)安装配置:Cocos2d-x
最近cocos2d-x 发布了cocos2d-x 2.0.2版本。今天有时间在Linux下面研究下。使用git下载最新代码:
1 git clone https://github.com/cocos2d/cocos2d-x.git
在Ubuntu(12.04)下面安装依赖库(使用eclipse编译一边便可知道具体缺少了那些库),我的机器上好像就少这两个:
sudo apt-get install libglfw2 libglfw-dev libzip2 libzip-dev
我使用Eclipse来开发,这货升级到4.2之后快的有点不像Eclipse了,而且界面改版,在Ubuntu里面布局比原来紧凑了很多。(大赞一个)
打开Eclipse,选择cocos2d-x的目录作为工程目录,如果不这样选择可能有一些麻烦的路径设置问题。选择导入已经存在的C++工程。把标记有linux的工程全部导入Eclipse中。
原来的Hello工程叫做HelloCpp, Test工程叫做TestCpp(我晕)。尝试了下:cocosDenshion在Linux下面是好的,解决了以前烦人的fmod依赖问题。Shader实例真的很不错。
(二)创建新的工程
Cocos2d-x目录下面有很多创建工程的脚本,创建Linux工程借用的是创建Android的脚本。由于是android工程,则需要android-sdk和android-ndk。单纯的创建Linux的工程我想意义不大。
编辑create-android-project.sh脚本:
gedit create-android-project.sh
修改下面一些变量:
NDK_ROOT_LOCAL="/home/laschweinski/android/android-ndk-r5"
ANDROID_SDK_ROOT_LOCAL="/home/laschweinski/android/android-sdk-linux_86"
NEED_BOX2D=false
NEED_CHIPMUNK=false
NEED_LUA=false
laschweinski是小胖的id,大家可以访问他的csnd blog和sina weibo。
修改完毕之后运行脚本:
./create-android-project.sh
根据提示进行设置,输入工程名称会在cocos2d-x目录下面生成一个相同名字的目录:cd到该目录会发现里面有一个proj.android的目录。运行
./build_native.sh
打开Eclipse,导入新建的项目即可。
注意的是Eclipse中启动图标icon发生了改变,需要重新设定为drawable中的那个ir_lanuch。升级到cocos2d-x 2.0之后采用es 2.0进行渲染,而模拟器是不支持es 2.0的。
只能进行真机调试了。
(三)新建Linux工程
使用Android工程固然是我们的最终目的,但是android工程有个最bug的地方就是他是一个java工程。如果你想在他里面编辑代码还不去找个vim来的爽快。还有一点就是你不能随时进行调试,除非你把你的手机一直插在电脑上。所以建一个Linux的工程就是必须的了。个人使用了一下Eclipse下面的C++代码编写,快要赶上VS+VA了。但是相比较而言,Linux项目的配置太原始了。如果有什么脚本可以快速配置请留言告诉我。
Eclipse with CDT没有安装其他的组件,选择工作目录为cocos2d-x的根目录。。使用Eclipse新建一个空白的可执行文件工程,项目名为Android的工程名,目录为与proj.android并列的proj.linux。
配置项目属性:C/C++ General -》 Path and Symbols -》 Libraries:
cocos2d
GLEW
fmodex
rt
z
cocosdenshion
配置Library Paths:
http://www.cnblogs.com/cocos2dx/proj.linux/${ConfigName} ../../cocos2dx/platform/third_party/linux/glew-1.7.0/glew-1.7.0/lib ../../CocosDenshion/proj.linux/${ConfigName} ../../CocosDenshion/third_party/fmod/api/lib
添加Source Location:
all-your-source-location
配置Includes-》GNU C++:
../ ../Classes ../../external ../../extensions ../../cocos2dx ../../cocos2dx/include ../../cocos2dx/kazmath/include ../../cocos2dx/platform/linux ../../cocos2dx/platform/third_party/linux ../../CocosDenshion/include ../../external/chipmunk/include/chipmunk ../../cocos2dx/platform/third_party/linux/glew-1.7.0/glew-1.7.0/include
配置Includes-》Assembly:
/your-cocos2d-location/your-source-folder /your-cocos2d-location/cocos2d-x/ /your-cocos2d-location/cocos2d-x/cocos2dx /your-cocos2d-location/cocos2d-x/cocos2dx/include /your-cocos2d-location/cocos2d-x/cocos2dx/platform /your-cocos2d-location/cocos2d-x/cocos2dx/platform/third_party/linux /your-cocos2d-location/cocos2d-x/CocosDenshion/include /your-cocos2d-location/cocos2d-x/chipmunk/include/chipmunk
(上面的配置主要是提供代码提示功能的)。
添加一份mian文件,拷贝过来即可。
修改Eclipse的content assist的快捷键为shift+space,Auto-Activaton延时为100(个人习惯)。
编译运行:
配置项目属性:C/C++ Build -》 Settings -》 Tool Settings -》G++ Compiler:
Preprocessor:Defined symbols(-D) 添加LINUX
C/C++ Build -》 Settings -》 Tool Settings -》G++ Linker:
Expert settings: Command line pattern:
${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} -Wl,-rpath,http://www.cnblogs.com/cocos2dx/proj.linux/${ConfigName} -Wl,-rpath,http://www.cnblogs.com/CocosDenshion/proj.linux/${ConfigName},-rpath,http://www.cnblogs.com/CocosDenshion/third_party/fmod/api/lib
编译运行即可: