目前搜索到的大部分文章,都没有说如何在eclipse上构造Cocos2d-x的开发环境(如果是用VS的话,就很简单,直接导入VS工程即可),所以写代码极其不方便,因为没有自动提示。所以,这一节主要介绍如何构造这个开发环境。
1、把Android项目变成一个结合java和c++的工程
该项目右键新建工程项目new->other,选择Convert to a C/C++ project(Adds C/C++ Nature):
Next后,选择本项目,Makefile project->Other Toolchain:
Finish!
这一步把Android工程变成带有C++性质的工程了。
2、项目右键属性Properties->C/C++ Build->Build Command: bash ${workspace_loc:/${project_name}}/build_native.sh NDK_DEBUG=1 V=1,如bash ${workspace_loc:/Cocos2dxTest}/build_native.sh NDK_DEBUG=1 V=1:
Apply, OK!
这一步使得JNI类库编译,可以直接在eclipse下完成,即可以对项目Build All(ctrl+B)就会在后台编译so库了,不需要跑到cygwin上编译:
这里注意一点,由于要用到bash程序,在${cygwin_loc}/bin目录下,所以应该把${cygwin_loc}/bin添加到windows的环境变量path中去,如d:\cygwin\bin。
3、项目右键属性Properties->C/C++ General->Path and Symbols->Source Location->Link Folder->Link to folder in the file system: ${project_loc}/Classes,如D:\cocos2d-2.0-x-2.0.2\Cocos2dxTest\Classes:
OK, Apply, OK!
这一步是把项目的真正的游戏代码文件夹${project_loc}/Classes关联到项目中去,从而可以用eclipse编辑游戏代码。完成后在工程目录中多了一个Classes的链接。
然而,却发现不给力的问题——Cocos2d-x项目的头文件目录没引入,从而引起类成员和函数无法解析的错误:
所以下面讲述添加需要的头文件。
4、添加Cocos2d-x的头文件目录:
需要添加的头文件目录有:
${android_ndk_loc}/platforms/android-8/arch-arm/usr/include
${cocos2dx_loc}/cocos2dx
${cocos2dx_loc}/cocos2dx/include
${cocos2dx_loc}/cocos2dx/platform/android
${cocos2dx_loc}/CocosDension/include
项目右键属性Properties->C/C++ General->Path and Symbols->Includes->GNU C++->Add:
Apply, OK!
这样就把项目需要的头文件目录添加到项目中去了。
看回项目,错误“几乎”都消失了——也就是说,还有漏网之鱼:
可以看到main.cpp和AppDelegate.cpp中,还不能对CCEGLView类进行解析,从而引起无法解析函数的错误。
但是问题就是,CCEGLView类的定义是在${cocos2dx_loc}/cocos2dx/platform/android文件夹中的,明明该文件夹已经添加了,却不能自动链接过去。
接下来,要使用一个trick方法消除这个错误。
5、在AppDelegate.cpp(或main.cpp)中添加头文件CCEGLView.h:
保存后,发现错误消失了,转到main.cpp文件看,错误也接着消失了。
这时候,表示CCEGLView类已经成功链接了,所以类成员和函数都能解析出来。
但是,这个头文件其实是不需要声明的!
所以,把头文件CCEGLView.h添加语句又再去掉:
保存后,发现错误并没有复发,在main.cpp中也是如此。
这一步是提示eclipse自动寻找CCEGLView.h文件并进行链接。
到这里为止,已经成功的建立起Cocos2d-x的开发环境了,建立起符号表,所有相关的类和函数都有自动提示功能了。
这只是起点,真正要做的还是在后面游戏的设计中体现吧。
谢谢。