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

来自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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值