前言
上次已经顺利的把所需要的环境都搭建完成了,下一步就是要创建具体的项目,然后开始学习
创建一个Android项目
打开Cocos2d-x的项目所在的路径,可以看到一堆项目的模板,我们要用的就是其中的 create-android-project.bat
这是个批处理程序,在开始执行之前,首先需要做一下修改,用Editplus等文本编辑器打开文件,找到如下几行代码
:: modify it to work under your environment set _CYGBIN=E:\andriod\cygwin\binif not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & pause & exit 4:: modify it to work under your environmentset _ANDROIDTOOLS=E:\andriod\androidsdk\toolsif not exist "%_ANDROIDTOOLS%" echo Couldn't find android sdk tools at "%_ANDROIDTOOLS%" & pause & exit 5:: modify it to work under your environmentset _NDKROOT=E:\andriod\android-ndk-r8dif not exist "%_NDKROOT%" echo Couldn't find ndk at "%_NDKROOT%" & pause & exit 6
三个set_% 分别代表 cygwin, android sdk 和ndk的路径,按照自己的安装路径设置即可,上面是我设置好了的。
保存,退出。
还差一步,cocos2d-x有个问题,不会自动拷贝过去cocos2d-x 库,所以直接创建后面会出问题。需要修改一下项目模板。
今天下了个最新的cocos2d-2.0-x-2.0.3版本下来,才发现里面的模板设置与我写这个文章的时候不一样了,这个没有发现lib的原因是在这个版本,这个lib的java文件放到了cocos2d-2.0-x-2.0.3\cocos2dx\platform\android\java\src这个文件按夹下了,而不是tests\proj.android\src\org\cocos2dx\lib这个了,且不知道是不是写模板的脚本的bug,cocos2d-2.0-x-2.0.3\template\android这个路径下的copy_files.sh脚本,COCOSJAVALIB_ROOT这个变量所指的路径就是那个lib的java路径,而在copy_src_and_jni()这个函数里面,居然没有调用复制,所以在这个函数里面加一句cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android就可以了。
这次真的是好了,双击执行,输入要创建的项目信息,以及target sdk version.
注意:如果你是win7/8的用户,从这步开始,权限问题会不断的困扰你,建议直接开启管理员账户,省去无数烦恼,操作方法请点击
或者你可以参考 一点点的设置.
创建完成之后,cocos2d-x目录下就会多了一个按照你的project Name命名的文件夹,打开它有三个目录,
Resources是游戏的资源,Classes是项目共有的类,proj.android是编译成安卓项目所需的文件,对应的还有很多很多...
在编写的时候,只要保证游戏的逻辑资源都在Classes目录,然后根据不同的平台,分别执行编译命令,就可以得到对应的App了。这就是cocos2d-x的妙处啊。
一开始不了解,还以为只是简简单单的不同平台语法相同呢,罪过啊罪过。
执行编译
编译就需要用到cygwin了,前面一直没有说,cygwin是一款交叉编译工具,所谓交叉编译,就是在一个平台上编译针对于另一个平台的代码。
拿我们这个为例,在Windows下编译Android的项目,当然就是交叉编译啦。
打开cygwin,进入创建的demo的android项目文件夹,如下图
注:linux内核的 目录 没有windows下的 ’\‘ ,都是 ’/‘ , 需要注意自己替换。
完成之后,回车,开始编译,这个时间比较长,我先接杯水,为一会儿阿森纳vs曼城 做一下准备,吼吼~
好了,出现上面的图就说明完成了,现在打开eclipse, 创建一个android工程,选择 ”Android project from existing code“ ,然后定位到我们的项目名那一级目录即可,比如我的是 “Demo”
添加完成之后,编译,运行,cocos2d-x的 "吉祥物" 就出现啦。(需要说明的是,为了减少不必要的麻烦,我没有用模拟器,直接上的真机,各位习惯于用模拟器的请搜索android开发教程中的模拟器的创建和使用)
工程创建至此完成,下周开始搞一个简单的游戏,并部署我的粗粮手机上。
需要添加环境变量:NDK_ROOT