【cocos2d-x】【平台搭建】菜鸟学习日志(二) Windows7+Eclipse+cocos2d-x平台搭建(无需Cygwin和VC)
Windows7+Eclipse+cocos2d-x平台搭建(无需Cygwin和VC)
——一篇详尽的、条理的、面向纯菜鸟的 cocos2d-x 开发平台搭建攻略
0.写在前面
经测试,本方法在 Windows XP 下同样适用。
这是一篇充满怨念的攻略,中间穿插着作者怨念的吐槽。不过没关系,我已经把重点的部分加红了,不想看吐槽的同学直接照着红字和图片做就好了!
那么接下来就正式开始吧!
先看看这次平台搭建我们所用到的一些工具的下载包:
3个官方zip包,名字中包含了它们的版本信息。如果它们的版本对你来说已经很旧了,那么这篇教程可能并不适合你。不过我相信它能给你带来一些重要的参考。
先说说写这篇教程的初衷。
首先我本身也是一个菜鸟。这几天和舍友想进行一些基于cocos2d-x的移动游戏开发方面的尝试。做开发自然避不开开发环境的搭建。
平台的搭建是由我进行的。在互联网上查阅相关资料和参考实践的过程中,我发现虽然网上有大量的教程,但是其中大部分是过时的、繁琐的、不通用的、不清楚的。有些教程是对其他教程的直接引述。照着好多篇教程弄下来都没能成功。
这是一个痛苦的过程。有时候信息太多了反而和没有信息是一样的。想做一件事却连第一步也迈不出去。
于是我觉定在最终把平台搭建成功之后写一篇详细的最新的原创攻略供像我一样的菜鸟们参考。当然,终于有一天这篇攻略也会变得过时。不过还是很高兴地告诉正在阅读你的:这篇攻略最终问世了!
然后说一说这篇教程的特点:
首先,教程中提供的是一个简单的平台,你并不需要下载很多东西。并且通过简单的配置就可以运行了。
得益于最新开发工具的支持,我们不必要配置麻烦的Cygwin了。
其次,这个开发平台所需要的所有工具都是开源的/免费的。你可以通过官网来下载得到一切需要的工具,使用这个平台的同时你也是在为反盗版做贡献。
顺便一说,不使用VC/VS并不是因为它不好,恰恰相反,VC对C++有更好的支持。但是网上下载到的VC通常都是破解版。虽然VS的官网为我们的提供3个月的免费试用。想用VC的朋友可以去找找相关教程,使用也很简单。不想用VC的就跟着我做吧,反正咱们菜鸟这也够用了!
最后,本文凝练了众多的教程,去掉了它们过时的、无用的部分,尽量采用了可视化的、通用的操作方式。说实话,经过提炼,我发现现在各个工具的版本其实对编程人员已经十分友好了,整个过程十分简单,以至于我开始怀疑写这篇教程的必要性了。
这篇教程的篇幅大,主要是因为我配了大量的图片,不是因为有大量的吐槽,真的不是因为有大量的吐槽!
1.安装Java
做过安卓应用开发的同学应该知道安卓系统的最上层是用Java编制的一套API,所以一般的安卓应用开发是在Java环境下的。而Java作为一种优秀的跨平台高级语言,它的一大特色就是需要Java虚拟机的支持。
所以我们的第一步就从能让Java跑起来的JAR开始说起。
网上有很多教程叫我们安装JDK(Java Development Kit),即Java开发包,其中包含一些函数库和编译程序等。其实不用这样,最新的Eclipse中已经集成了JDK,所以我们只需要安装一个JRE(Java Runtime Environment),即Java运行环境,就可以了!至于Eclipse,不要急,稍后你就会看到了。
安装JRE非常简单,进入官网:
www.java.com/zh_CN/ (你也可以百度“JAVA”,第一个的官网就是了)
你就能很显眼地看到“免费JAVA下载”的按钮了,点击,然后系统会自动给你找到适合你的JAVA,下载就可以了。如图:
下载之后的安装和你平时安装软件是一样样的。
等Java安装完之后,我们第一步工作也就做好啦!
2.获得Android SDK(Software Development Kit)
Android SDK是官网提供给我们的安卓专用开发者工具包,里面包含了安卓定制的Eclipse、ADT(Android Developer Tools)集、Android SDK工具、Android 平台通用工具以及最新的安卓平台版本(我这里目前的版本是4.4.2,你也可以通过里面的SDK Manager下载其他版本的安卓来使用)。
注意这里面包含了安卓定制的Eclipse!
Eclipse是一个开源的、可扩展的基于Java的集成开发平台。以前做过Java开发的同学可能用过这个东西。网上有些教程就是基于原版的Eclipse,然后一步步添加诸如ADT的安卓开发插件,最终搭建起这个开发平台的。
现在我告诉你:不用这样!安卓官网SDK里面自带定制好的Eclipse,你只要下载SDK,解压,拿里面的Eclipse出来就可以直接开发通常的安卓应用了!
具体的下载地址是:
http://developer.android.com/sdk/index.html
进去之后就可以看到“Download the SDK”的按钮了。点击,阅读(你确定?)并同意相关条款,然后选择适合你机型的版本(我的是Windows7 32位系统,所以选择 32bit),下载就可以了。
我直接下载到了D盘根目录下,你可以下载到任何你喜欢的位置。下载之后直接解压就可以了。如图:
3.下载cocos2d-x
既然是基于cocos2d-x的安卓游戏开发,下载一个cocos2d-x当然也是必须的啦!Cocos2d-x是什么我就不多说了,问度娘去吧!我也是第一次接触,说不清这是什么。
Cocos2d-x的下载当然也要去官网啦!
http://cocos2d.cocoachina.com/download
上面的地址是中国官网的下载页面。作为一个跨平台的游戏引擎,这里提供了适用于各个版本的cocos2d-x供我们下载。
瞧好了,我们要下载的是稳定版!如图:
你可能发现这里还提供不稳定版的v3.*。是的,v3版引入了很多不错的新特性。不过作为第一次接触这款引擎的菜鸟,还是用稳定的v2版本吧,网上的教程也多一些……
下载包也是一个zip压缩包,解压到任意你喜欢的位置就行了。
4.为Eclipse添加CDT(C/C++ Development Tooling)插件
再前面一些我们说到把SDK解压。解压后的文件夹里面就有一个 eclipse 包,里面的Eclipse就可以直接用来编写通常的安卓应用了。然而,我们做的是基于cocos2d-x这个游戏引擎的安卓应用,这个游戏引擎的核心是C++的,然后通过交叉编译来生成各个平台的安装包(可以说用这个引擎写游戏基本和JAVA语言没啥关系了,之前不知道的同学好好补补C吧……)。而我们的Eclipse本身是基于Java的。怎么办呢?好在Eclipse是一个可扩展的开发平台,我们可以通过添加CDT插件来使我们的Eclipse可以编辑和调试C!
获取CDT有两种途径,一种是离线添加,这种方法是直接下载CDT包,然后把它手动添加到Eclipse的相关目录下。这种方式下载速度可能比较快,但是下载之后的配置比较麻烦。还有一种方法是用Eclipse进行在线安装,这种方式下载慢一点,但是比较无脑、通用。
作为一遍面向纯菜鸟的攻略,我在这里只介绍后一种方法。
在此之前,先把你刚刚解压到的Eclipse打开吧!
首先去到
这个地方,Download的按钮很明显:
点进去之后我们可以获得这个网址:
http://download.eclipse.org/tools/cdt/releases/kepler
这个地址复制到剪切板吧,一会用得到(你当然也可以直接从这个攻略上拷贝)。
然后回到Eclipse,点击Help => Install New Software
点击Add,在弹出的对话框中:
Name填入 :CDT
Location填入:之前复制好的网址
点击OK
过一会它会帮你搜索到两个待选项,选择 :CDT Main Features
然后next,之后该同意的同意,该继续的继续。
整个过程会持续一会,然后它会要你重启Eclipse。
重启之后这一步就也完工了!
5.获取Android NDK
前面的CDT是为了让Eclipse支持C的,但是CDT只是给了我们诸如项目管理、语法着色以及集成调试等写代码的功能,真正要把写好的C代码编译、链接并打包,单靠它还是不够的。这是我们需要NDK来帮助我们完成这些内容。
网上很多的教程中提到了 Cygwin ,这是一个在windows平台上运行的类UNIX模拟环境。用这个的原因好像是我们写好的C++代码在编译时用到了UNIX的bash工具等。不过Cygwin的安装和相关配置极其繁琐,非我等菜鸟所能驾驭。
好消息是,最新版的NDK里面已经集成了bash相关的功能,也就是说即使不用Cygwin,我们也可以编译我们的C++代码了!所以,让Cygwin这种过时的东西见鬼去吧!
下载NDK的地址是:
http://developer.android.com/tools/sdk/ndk/index.html
和SDK一样,这也是官网提供给我们的工具。在这里选择适合你机型的版本,下载并解压就可以了!如图:
6.运行示例应用HelloCpp
到目前为止,我们的下载和安装工作就基本结束了。我在做到这一步的时候也松了一口气,可是万万没想到这才是恶梦的开始呀!不过你们大可放心啦,我已经摸索到了最简单的方法,看下去吧!
Cocos2d-x解压后的文件夹里提供了一些示例应用。用接下来的篇幅,我带大家一步一步地把HelloCpp这个应用程序折腾成.apk让它能在你的手机或虚拟机上跑起来!
首先,打开Eclipse。
据说按照官网推荐的方法,在导入 HelloCpp 之前,我们先来导入下面的一个工程,其目的是把类库加到我们的工作平台。
这里我忍不住要吐槽一番:网上有很多教程是这样引入类库的:它教大家去某个路径之下把 lib 文件夹拷贝到 HelloCpp 的相应路径下,然后刷新工程,以此来达到引入 lib 的目的。
这样做有很多缺点。首先切出 Eclipse 去拷贝和复制文件本来就是一种我很反感的、没有通用性的方法。而且经过我的测试,这样做的结果往往不好。以我的理解,用我接下来介绍的方法来做,系统会智能地将你需要的库函数引入,这样的好处就最终生产的apk会比直接拷贝库更小。通过两种方法打包,直接拷贝的apk大小是4M左右,而用下面方法得到的apk只有1M左右!更重要的是,这是一种通用的方法!
在 Eclipse 中:
File => New => Other...
在弹出的 New 对话框中,选择:
Android => Android Project from Existing Code
Next >
在弹出的对话框的 Root Directory 项中,参考我的路径填入你的路径。可以通过Browse... 键来选取这个路径:
F:\cocos2d-x-2.2.3\cocos2dx\platform\android\java
系统会自动帮你检测到工程,并帮你勾选。点击 Finish 就好了
用同样的方法,我们导入 HelloCpp 工程:
File => New => Other...
Android => Android Project from Existing Code
Next >
这次我们的路径如下:
F:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\proj.android
你会发现 HelloCpp 目录下除了proj.android 之外还有 proj.各种。这些包是为其他的平台准备的。这也是 cocos2d-x 跨平台的体现。
Finish
做到这一步,你会发现导入的 HelloCpp 有红叉。没关系,跟着我慢慢做吧!
首先,HelloCpp 这个示例程序需要用到一些额外的图片资源,你可以在如下路径中找到:
F:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\Resources\iphone
真是偏心啊,只提供 iPhone 的图片资源!不过话说安卓的机型那么多,确实是配不过来呢!
把找到的3个图片资源一起复制一下,然后在Eclipse中直接粘贴到目录下就行了!
在 Eclipse 中:
Window => Preferences
在弹出的Preferences 对话框中,点击 Android 项
在 SDK Location 项中填入我们之前下好的SDK的路径如下(可能已经填好了)。你也可以Browse 进这个路径。
D:\adt-bundle-windows-x86-20140321\sdk
然后再到 Android 的子项目 NDk中
在NDK Location 中填入之前下好的NDK的路径如下:
D:\android-ndk-r9d
点击OK
接下来是为我们的项目配置 bulid 的过程。经过我的测试和优化,接下来的步骤也很容易。
选中 HelloCpp 项目右键单击 => properties(这一项在最底下)
会弹出一个 Properties for HelloCpp 对话框
耐心的读者,请容许我在这里再吐槽一番吧!
网上很多教程这时会叫我们去 Build 中做这样一个工作:把原有的 CDT Builder 反勾选掉,然后新建一个自己的 Builder,然后是在 Environment 中添加一些环境变量。之后就是很大篇幅的关于如何配置这个 Builder 和环境变量的繁琐过程。我想问一句,你们这样做真的成功了吗?反正我是一直遇到一个 Program "bash" not found in PATH 的错误!
我在这个地方挣扎了很久,终于发现这一步根本是多余的!
唉,说多了都是泪……
下面我们选中对话框左边的 C/C++ Build 这一项继续我们的配置吧。
首先在 Build command 项中填入我们 ndk-build.com 的路径:
D:\android-ndk-r9d\ndk-build.cmd
OK完成这部分的配置。
到我们的 HelloCpp 工程中打开 jni 中的 Application.mk,在最后加入下面的语句。
NDK_MODULE_PATH:= F:/cocos2d-x-2.2.3;F:/cocos2d-x-2.2.3/cocos2dx/platform/third_party/android/prebuilt
注意:这个路径是我的路径,你要认真比较改写成你的相应路径!注意这里的斜杠的方向!还有就是这是由两个路径组合成的,中间用分号隔开!
这一步好像也是关于环境变量方面的。作为一个菜鸟,我还不太了解环境变量的用处,不能给大家说更多细节。不过这一步是必不可少的。
输入完之后保存一下。
在 Eclipse 中
Project => Clean
在弹出的 Clean 对话框中,选取 Clean all projects (已经选好了),
OK
待一切结束之后,右键点击工程 HelloCpp
Run as => Android Application
这就是整个过程的最后一步了!
观察,一下Console窗口,你会发现它已经开始紧锣密鼓地开始工作了!
第一次因为要编译库,所以这个工作会持续较长的一段时间。别着急,我们马上就要成功了!
最后Eclipse会弹出一个对话框,跟你说找不到安卓虚拟机,问你是不是要开启一个。不用管它,关掉叫行了!说实话,用电脑运行ADT里的安卓虚拟机真是慢得不能再慢了,光是启动就要很久!还是用我们的手机测试吧!
如果一切顺利的话,在 HelloCpp 工程的这个目录下你应该就能找到打包好的HelloCpp.apk了:
HelloCpp => bin => res
把这个拷贝到你的手机里安装吧!恭喜你成功跨出了cocos2d-x 跨平台游戏开发的第一步!
7.用Python创建自己的工程
哈哈,这个算是结尾的小彩蛋吧!你以为教你运行一个实例程序就没有了吗?那你也低估这篇文章的诚意了!接下来我还会教你怎么用 Python 来创建属于你自己的工程!
Python 也是一种很有意思的语言,它的特性让它经常被用来生成各种其他语言的程序原型!
当然了,在这里你完全不用了解这个语言,只要去官网下载它就好了!
官网的地址是:
然后在 Downloads 下找到 Python 2.7.6 下载
注意:这里一定不要贪新去下 Python 3.*!截止目前为止,cocos2d-x 的工程创建还不支持 Python 3.* 。我亲自测试,它会提示你语法错误,虽然根本没有错。
下好之后安装就行了。安装过程很无脑,一直next最好finish就行了。
系统会默认把 Python 安装在这个路径下:
C:\Python27\
之后需要为 Python 配置一下环境变量
在Windows7下直接搜索环境变量,在搜索结果中点击 编辑系统的环境变量
在弹出的对话框中点击 环境变量
在弹出的环境变量对话框中,找到 系统变量
在path中添加 Python 的安装路径
;C:\Python27\
在PATHEXT中添加 Python 支持的两个文件格式
;.PY;.PYM
不要把原来的删除,添加到后面就可以了。注意用英文分号“;”把它们隔开!
确定
用同样的方法在Windows7下搜索并打开 cmd
可以看到默认路径是在你的用户目录下,而我们现在要去的目录是:
F:\cocos2d-x-2.2.3\tools\project-creator
因为这个目录下有我们要用来创建工程原型的 create_project.py
在控制台下输入
F:
敲击回车
这是我们就到了F:根目录下。
然后通过 cd 命令来转入上面的路径:
在控制台下输入
cd F:\cocos2d-x-2.2.3\tools\project-creator
回车
输入下面的命令:
Create_project.py -project MyCpp -pacakge com.TestCpp.MyCpp -language cpp
回车
注意:有的教程上说 -package 的参数必须是3级目录。我没有测试过,大家就照着做吧!
如果你的控制台显示的东西和我下面的图一样的话,就说明你成功了!否则很有可能是你输错了,好好检查一番!
这样,我们的工程就在如下路径中创建好了:
F:\cocos2d-x-2.2.3\projects
去这个路径把刚刚创建好的 MyCpp 点开看看,你会发现这和 HelloCpp 里的布局差不多。是的,这就是所谓的原型喽。是不是很简单?
到此为止,我们就算真正可以开始编写游戏啦!现在想想是不是还有点小激动呢?不过接下来还有大量的 cocos2d-x 学习内容需要进行。同为菜鸟的我只能帮你到这啦!
另外如果本教程中有什么不足之处,恳请各位真正的大神们指出!