弃我去者,昨日之日不可留; 乱我心者,今日之日多烦忧。
分类: Android平台
2015-01-05 10:12:57
准备安装 cdt,sdk ,adt ndk
1.1Eclipse+CDT
首先确保你的Eclipse正确安装了CDT插件,这样你才能编辑和创建C++工程,有关Eclipse+CDT的环境配置,请自行google。
版本……不知道有没有影响,我的Eclipse是3.7 Indigo,CDT是8.0.2。
1.2Cocos2d-x
这个……必须的。
官网下载,建议cocos2d-2.0-x-2.0.3,这样稍后的例子你的会跟本文介绍的一样。
1.3Android SDK / ADT
既然想用eclipse,应该是想做Android平台吧,那么请正确安装Android SDK和ADT。
只要开发Android项目,无论是否使用cocos2d-x引擎这都是必需的。也请自行google。
1.4Android NDK
这是Android的C++交叉编译器,如果要做Android版本也是必须的。官网下载,r8或以上版本。
//////////////////////////////////
安装完毕后,按照以下流程进行
三、Eclipse + Cocos2d-x
终于到了最关键的一章,也许你会发现,原来这么简单——甚至比使用vs还要简单。当然,除了一些需要手动操作的部分之外。
3.1 建立C++工程
如果你的Eclipse正确安装了CDT,你应该可以进行下面的操作,否则请参看1.1小节并自行google。
启动Eclipse -> File -> New -> Project… -> C/C++ -> C++ Project:
Next >:
选择Empty Project,Toolchains选择Microsoft Visual C++,起个名字叫HelloCpp,Finish。
这样你就得到了一个基于ms vc++编译器的空的C++工程HelloCpp。
3.2 创建cocos2d-x跨平台目录结构
手动的将\cocos2d-2.0-x-2.0.3\samples\HelloCpp目录下的全部文件夹考到你的这个项目下:
这样你就有了一个跟标准cocos2d-x一样的目录结构。
3.3 加入lib
右键点击HelloCpp工程,选择Properties -> C/C++ General -> Paths And Symbols:
右边的Includes标签下Languages应该有3个,不同Eclipse版本可能名字显示不同,无所谓,随便点选其中一个,Add:
Directory里面输入\cocos2d-2.0-x-2.0.3\cocos2dx所在的路径,当然你也可以在File system里面找。
注意下面有两个选项:Add to all configurations和Add to all languages,都勾上。OK:
然后继续Add,用同样的方式添加下面两个目录所在的路径:
\cocos2d-2.0-x-2.0.3\cocos2dx\include
\cocos2d-2.0-x-2.0.3\cocos2dx\platform\win32
注意都要勾选那两个选项。Apply -> OK。
3.4 建立Android工程
如果你的Eclipse正确安装了Android SDK和ADT,你应该可以进行下面的操作,否则请参看1.3小节并自行google。
选择Eclipse的File -> New -> Project… -> Android -> Android Project from Existing Code:
Next >:
Root Directory里面,选择你worckspace里面,刚才建立的那个C++工程HelloCpp文件夹下面的proj.android。Finish:
3.5 建立cocos2d-x Android lib工程
上一节建立的工程会显示有错误,原因是没有导入cocos2d-x的lib。
再次选择Eclipse的File -> New -> Project… -> Android -> Android Project from Existing Code,这一次在Root Directory里面,选择\cocos2d-2.0-x-2.0.3\cocos2dx\platform\android\java所在的路径::
Finish。
这样你就有了一个cocos2d-x的Android的lib工程。
(顺便说一下,这个工程名字应该叫作libcocos2dx,但是不知道什么原因,我建出来的名字叫java……)
3.6 加入cocos2d-x Android lib
右键点击org.cocos2dx.hellocpp.HelloCpp工程,选择Properties -> Android:
如果右下方你的Library列表里有个项目前面有个红叉,选中,Remove。然后Add:
里面的列表会有刚才创建的libcocos2dx(我这里叫做java)lib工程。OK
这个时候org.cocos2dx.hellocpp.HelloCpp工程没有错误了。
3.7 创建你自己的jni Builder
如果你正确下载并解压了Android NDK,你应该可以进行下面的操作,否则请参看1.4小节并自行google。
右键点击org.cocos2dx.hellocpp.HelloCpp工程,选择Properties -> Builders:
如果你看到右边最上方那个带着蚂蚁图标的New Builder (1),选中,Remove。然后New:
选Program,OK。
Main标签下:
Location从Browse File System中选择\android-ndk-r8b\ndk-build.cmd
Working Directory从Browse Workspace中选择Android 项目org.cocos2dx.hellocpp.HelloCpp
Refresh标签页下,第一个勾选上:
Environment标签页下,按New
Name填NDK_MODULE_PATH
Value填
x:\xxx\cocos2d-2.0-x-2.0.3;x:\xxx\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\android\prebuilt (其中x:\xxx是你cocos2d-2.0-x-2.0.3存放的位置),OK:
Build Option标签页下,勾选During auto builds和Specify working set of relevant resources:
然后按Specify Resources,在org.cocos2dx.hellocpp.HelloCpp下的jni目录前打勾:
Finish,Apply,OK,OK。
四、如何使用
如果你顺利的进行了第三章所述的所有操作,你的跨平台环境已经完成了。但如果你仍然不知道该如何编写cocos2d-x代码并在Android设备上运行和调试,请继续向下看。
4.1 编写C++代码
经过上一章的操作之后,你的Eclipse里应该有了3个新的工程:
HelloCpp: 这是一个C++工程
libcocos2dx(我的叫做java): 这是一个cocos2dx的Android版本lib工程
org.cocos2dx.hellocpp.HelloCpp: 这是一个Android工程
遵照cocos2d-x的跨平台解决方案,我们应该在HelloCpp工程的Classes下编写C++程序,HelloCpp工程自带了两个类:AppDelegate和HelloWorldScene。你可以增加更多你自己的类。
4.2 运行Android项目
如果你已经在HelloCpp工程中编写了一些C++程序而急于想在Android设备上看到效果的话,你不应该编译和运行HelloCpp工程,而应该直接运行org.cocos2dx.hellocpp.HelloCpp工程。
但在运行之前,仍然需要我们手动的将HelloCpp 工程下的\HelloCpp\Resources目录下的所有资源文件都考到org.cocos2dx.hellocpp.HelloCpp工程的assets文件夹下。(或许将来有谁帮忙写个windows下的批处理来做这件事?)
在本例中,就是iphone和iphonehd文件夹:
然后选中org.cocos2dx.hellocpp.HelloCpp工程,点Eclipse的Project-> Build Project:
第一次build的时候会很慢,因为要把整个cocos2d-x的lib都编译一遍,以后就不会这么慢了。编译完成的话在Console窗口应该能看到下面的输出:
这个时候libhellocpp.so已经生成了,接下来就可以在你的Android设备上运行你的org.cocos2dx.hellocpp.HelloCpp工程了!
(特别注意的一点是:好像模拟器对于openGLES的支持有问题,如果用模拟器运行这个例子的话会报错)
4.3win32版本(可选项)
你也许还记得1.5小节中的可选项:安装vs2008。如果你进行了这一步,那么你还可以使用vc++的编译器在win32环境下编译和运行你的HelloCpp工程。
据说cocos2dx自带的模拟器也挺不错,不过因为我没有做这一步,所以我也不知道实际效果是什么,而且你也不要指望我会在本文中给你攻略。