cocos2d-x学习笔记(二)Eclipse+cdt实现cocos2dx跨平台解决方案(Android版)

来源:互联网 发布:大数据架构师指南 编辑:程序博客网 时间:2024/06/05 16:40

一.环境

1.1Eclipse+CDT

1.2cocos2d-x

1.3android SDK / ADT

1.4android ADK

二、解决方案概述及目标

2.1基于Eclipse的解决方案

vs是官方推荐的windows下的开发环境。如果你使用vs,那么有关跨平台的一切几乎都由cocos2d-x帮你解决好

了:自动生成项目、自动包含lib。下文将要介绍的基于Eclipse的解决方案并没有那么方便,很多时候都需要手动 来进行处理。

2.2目标

1.在eclipse中编写c++代码,而且要有代码提示。

2.能够很方便的在eclipse里面查看cocos2dx的源代码。

3.在eclipse里面自动编译有c++代码的android项目并运行和打包。

4.其实还想在eclipse里面实现c++代码的调试,只是这个步骤暂时还没有摸索出来。

三、Eclipse + Cocos2d-x

3.1建立C++工程

如果你的Eclipse正确安装了CDT,你应该可以进行下面的操作。启动

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:(引入cocos2dx及其源码)


右边的Includes标签下Languages应该有3个,不同Eclipse版本可能名字显示不同,无所谓,随便 点选其中一个,Add:


Directory里面输入\cocos2d-2.0-x-2.0.3\cocos2dx所在的路径,当然你也可以在File system里 面找。注意下面有 两个选项:Add to all configurations和Add to all languages,都勾上。

然后继续Add,用同样的方式添加下面两个目录所在的路径:

\cocos2d-2.0-x-2.0.3\cocos2dx\include

\cocos2d-2.0-x-2.0.3\cocos2dx\platform\win32

\android-ndk-r8c\platforms\android-8\arch-arm\usr\include

\cocos2d-2.0-x-2.0.3\CocosDenshion\include

注意都要勾选那两个选项。Apply -> OK。

(若需要什么源码,都可以这样引入的,比如\cocos2dx\cocos2d-2.0-x-2.0.3\external\Box2D)

3.4建立Android工程

如果你的Eclipse正确安装了Android SDK和ADT,你应该可以进行下面的操作。选择Eclipse 的File -> New ->  Project… -> Android -> Android Project from Existing Code


NEXT:


Root Directory里面,选择你worckspace里面,刚才建立的那个C++工程HelloCpp文件夹下面 的proj.android。

若是改变了..\template\android目录下的copy_files.sh文件,则没有错,否则加入cocos2d-x Android

3.5创建JNI Builder

如果你正确下载并解压了Android NDK,你应该可以进行下面的操作。右键点击 org.cocos2dx.hellocpp.HelloCpp 工程,选择Properties -> Builders:


点击NEW,选Program

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填 ..\cocos2d-2.0-x-2.0.3;

..\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\android\prebuilt 

(其中..是你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目录前打勾:


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。你可以增加更多你自己的类。 但要在Android.mk里注册。

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都编译一遍,以后就不会这么慢了。编译完成后时候libhellocpp.so已经生成了,接下来就可以在你的Android设备上运行你的org.cocos2dx.hellocpp.HelloCpp工程了!

(特别注意的一点是:好像模拟器对于openGLES的支持有问题,如果用模拟器运行这个例子的话会报错)

注意:google升级了Android ndk r8c,这个版本修复了上版本的错误,比较扯淡的错误。不过这次更新的童鞋可以发现,每ndk-build会重新编译所有的,管你改没改过代码。总之building解决方案:

打开NDK的根目录 找到 build/core/definitions.mk 这个文件然后打开,在289  

$1: $$(__ndk_file_dir)  改为  $1: | $$(__ndk_file_dir) 


原创粉丝点击