您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-x 跨平台开发环境配置

2013-03-15 16:20 281 查看
来自cocochina,原帖地址:http://www.cocoachina.com/bbs/read.php?tid=129743

Cocos2d-x
跨平台开发环境配置(201212版)

1、前言

准备了解使用cocos2d-x开发手机应用,因为Xcode,cocos2d-x,andoroid的自身版本也在不停的变化,导致刚开始学习时找的资料基本跟不上版本的变化,走了一些弯路。将自己的配置过程写下来,算是一个记录和提醒。本文由swimfox写于2012年12月始,各软件版本以当时网上下载的最新版本。本文可以转载,但要注明出处和时间。

参考文章一:COCOS2D-X跨ANDROID&IOS平台开发入门教程

非常感谢该文的作者&译者,对swimfox的学习非常有帮助

配置环境基于mac os。因为用了cocos2d-x,肯定是iOS,android双枪,而开发IOS APP则必须使用mac os,mac os上也可以开发android app,所以mac os是必须的,也更加方便。另外IOS的模拟器比android的模拟器要快的多,好用的多。这里吐槽一下,android的模拟器,启动一下就要3,4分钟,难道不能做个睡眠功能,把内容直接保存到硬盘上,让android模拟器也可以实现休眠,这样自身启动也会快很多。

本文涉及的各软件版本

再次强调涉及的各个软件版本,因为cocos2d-x发展很快,内容可能跟不上其变化,容易给读者造成疑惑。swimfox就是因为搜索cocos2d-x的文章,发现基本都是1.0的,和当前2.X版本有一些差别,才又写此文的冲动。

cocos2d-x: cocos2d-2.1beta3-x-2.1.0.zip

OS: mac OS X Mount Lion 10.8.2

Xcode 4.5

Eclipse : Version: Juno Service Release 1 Build id: 20120920-0800

JAVA版本:1.6.0_37 macos 自带,

gcc: 4.2 maos 自带

android-sdk: adt-bundle-mac-x86_64.zip(google 官网下载)

android-ndk: android-ndk-r8c-darwin-x86.tar.bz2 (google 官网下载)

2、安装Xcode和cocos2d-x,搭建IOS开发环境

2.1 Xcode安装

苹果官网太慢,直接搜索,得到这个地址:XCode 4.5正式版下载地址:http://kuai.xunlei.com/d/UVKGYFNQIYLG

下载,运行后,把code图标拖入app目录,点击一下xcode图标可以运行就OK了。

2.2 cocos2d-x安装和第一个demo

解压cocos2d-2.1beta3-x-2.1.0.zip 至usr目录 (swimfox这里是/home/roger),为了将来升级到更新版本,在同级目录创建符号链接ln -s cocos2d-2.1beta3-x-2.1.0 cocos2d-x。

运行脚本,安装Xcode的cocos2d-x模板,

cd ~/cocos2d-x

sudo ./install-templates-xcode.sh -f

-f 表示覆盖安装,这样可以覆盖老版本的cocos2dx的模板

从xcode中创建cocos2d-x工程,右键,运行,就可以在模拟器中看到刚编译好的程序在运行了

启动Xcode,创建新project时,可以看到有cocos2d-x的模板了



从这个模板创建一个project ,名称为 cocso2dx1,查看其目录结构,可以看到包含的cocos2dx的版本是 2.1.0 的了,在Classes目录下就是项目的四个源文件。



右键project,选择运行,在模拟器中就可以看到第一个cocos2dx的例子



3、安装Eclipse,配置cocos2d-x,搭建android开发环境

3.1 eclipse,android SDK,搭建android开发环境

开发需要android的SDK在 http://developer.android.com/sdk/index.html下载。可以下载eclipse sdk整合包,(已含插件ADT:android developers
tools)这个是最方便,下载的里面已经那个含有一个最新版本的sdk。

解压 adt-bundle-mac-x86_64.zip 到用户目录,其下有两个目录 eclipse sdk,eclipse就是整合了ADT插件的eclipse,

下载的需要下载更多版本的androidSDK,需要在 sdk/tools 目录下运行 android 这个程序,会弹出一个窗口,选择各个版本的sdk,例子,文档,google和其他厂商单独的API,以及一些其他的芯片的image文件(暂时不知道用处),因为比较慢,选择几个版本的sdk下载就可以了,其他版本的可以延后再下。

如果下载单独的eclipse,就需要在eclipse中安装ADT插件,可以搜索解决。(swimfox既用了整合版本,也用单独eclipse做了测试,还是感觉整合版本更方便)

运行eclipse,就可以开发基本的android项目了,但这是基于java开发的,不是本文的重点。网上随便找找就是了。

3.2 eclipse开发cocos2dx项目

android的开发本来是java的,但在2009年6月,google提供它允许一些组件采用C/C++来编写,然后通过标准的Java Native Interface (JNI)来调用。

安装NDK的过程非常简单:下载最新版本的NDK。 developer.android.com—index.html,swimfox将解压tar.bz2
到/Users/roger/android-ndk-r8c 目录

设置环境变量和path。 .base_profile 最后再增加 NDK,android sdk的环境变量

export NDK_ROOT="/Users/roger/android-ndk-r8c"

export ANDROID_SDK_ROOT="/Users/roger/adt-bundle-mac/sdk"

export PATH=${PATH}:/Users/roger/adt-bundle-mac/sdk/tools:/Users/roger/adt-bundle-mac/sdk/platform-tools

然后使其生效,souce .bash_profile。最后运行创建项目的脚步就可以了

~ $ cd cocos2d-x

~/cocos2d-x $ ./create-android-project.sh



可以看到我们设置的NDK,android SDK的路径都起效了。输入包名,选择sdk的版本,输入项目名称,android-cocos2dx的项目就建立好了,就建立在 ~/cocos2d-X 目录下,这里项目名为 ljtest1。

现在用C++编译这个项目,这里因为cocos2d-x版本升级后,andorid目录稍有不同。不是参考文章一中说的android目录,而是“proj.andoird” 目录。

~/cocos2d-x/ljtest1/proj.android $ ./build_native.sh

最后生成一个libgame.so ,android就是用java来调用这个so文件



so编译成功了,下一步就是用eclipse生成一个android工程,用java代码来调用这个so文件。

运行eclipse,从菜单"Project"-"New.."中选择从已有代码创建一个新项目。





选中 “proj.andoird” 目录。android项目就自动建立好了。

有两个地方因为2dx版本的升级,被坑了几次,要注意。

1,在生成高版本sdk的框架的时候,AndroidManifest.xml里的icon图片名称是icon,但有时,通过模板创建的工程,却把 ic_launcher.png文件copy过来了了,两个解决方案,a,把icon.png这个图片copy进去资源文件夹下。b,用文本编辑器打开AndroidManifest.xml文件,把第9行中的“icon”替换成"ic_launcher”。

2,在2.x版本后,没有自动把cocos2d-x的java文件包含到工程中,需要在eclipse的工程中添加这个路径。右键ljtest1工程,选择 BuildPath->Link Source,弹出窗口的第一个对话框选择 cocos2d-x 安装目录下的 $COCOS2DX_ROOT/cocos2dx/platform/java/src 目录,第二个对话框“Folder name"会自动填写上src,这个与项目中的src目录名冲突了,改名就可以了,这里填写的是cocos2dx图片截图时写错了,写成了org-cocos2dx,自动忽视吧)。



右键ljtest1项目选择:Run
AS->Android Application ,Eclipse就会自动编译该项目,并启动模拟器来运行。图标已经在模拟器上看得见了。



但且慢,cocos2d-x 2.x版本使用openGL2.0l了,模拟器是不支持的,所以只有将编译的apk文件安装到真机上执行。(关于android的模拟器只是openGL 2.0的模拟,网上好像也有办法来解决,但swimfox没有实验通,另外就是andriod的模拟器实在是太慢了,就没有心情弄了)

传到swimfox的夏新大V机器上。跑起来,用mbp摄像头拍个运行时的照片(前置摄像头拍出来是反的)



四、整合跨平台开发

android-cocos2d-x 项目 ljtest1中,c++的代码在Classes目录下



可以看到,和Xcode-cocos2d-x项目中的C++代码文件,数量,文件名,内容是完全一样的。所以很简单,直接将android-cocos2dx项目的Classes目录删除,做一个符号链接到Xcode-cocos2dx项目的Classes目录,到这一步,跨平台混合开发就算基本完成了。

先在Xcode下进行开发,在IOS模拟器上调试,完成一个功能后,再切换到 android-cocos2dx项目的proj.android目录下,运行build_native.sh ,编译出一个新的libgame.so ,然后再在eclipse下生成adroid的apk安装包,进行安装调试。

对swimfox来说,跨平台的开发到这里就足够用了,命令行的使用,编译对我来说更习惯、方便。

参考文章一后文还描述了在eclipse整合 编译so 的内容,这样开发更方便一些,如果又需要的可以再仔细看看参考文章一。

swimfox@20121212
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: