![Cocos2d-x游戏开发实战精解](https://wfqqreader-1252317822.image.myqcloud.com/cover/453/27110453/b_27110453.jpg)
1.3 安卓开发环境的搭建
上一节已经能够在电脑上运行Cocos2d-x的程序了,可以说经过上一节的学习,好奇的读者已经可以开始直接进行开发方面的学习了。Cocos2d-x一个很大的优势在于它可以跨平台开发,也就是说它可以轻松地将写好的程序移植到安卓、Windows Phone等平台上去。本节就以最常见的安卓平台为例,来说明Cocos2d-x是怎样实现跨平台开发的。
提示:如果是要进行iOS的开发,笔者还是建议直接在Cocos2d而不是Cocos2d-x上开发,虽然它们使用的几乎是同一套代码。但Cocos2d毕竟是专为苹果而生的版本,效果确实要比Cocos2d-x好上不少。而Cocos2d-x虽然号称是可以多平台运行,但实际上由于市场占有率的问题,主要还是用于安卓和Windows Phone两大平台。
1.3.1 JDK的安装
要在Windows平台上开发可以在安卓平台上运行的程序,自然需要有适合安卓开发使用的开发环境,而实现这一切最首要的还是要在电脑上装好Java。
(1)在Cocos引擎中已经提供了JDK(Java Development Kit)的下载(如图1-26所示,在“商店”中可以下载)。单击“立即下载”按钮进行下载。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00028.jpg?sign=1738939899-sJy7NYHWH8fKxr6jn9tIPbeOL0AAJzEX-0-838f3a283bd59161da0b256979e29094)
图1-26 在商店中下载JDK
(2)下载完成之后可直接双击运行安装,双击后出现如图1-27所示的界面。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00029.jpg?sign=1738939899-G8SsB9NnkSgga6xVgzw1HBfwyo8PEf0z-0-369affeae86bb35cf681bc8172ce5463)
图1-27 安装JDK
(3)单击“下一步”按钮,在如图1-28所示的界面中可以选择JRE以及一些范例的安装路径,这里保持默认路径不变,直接单击“下一步”按钮。接下来可以一直等待JDK的安装,直到出现如图1-28所示的界面,单击“完成”按钮完成安装。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00030.jpg?sign=1738939899-2tQWd9lAaCYlaf1qzpJ6YrhVxUJzowjW-0-40da7df4a325bf81c1997bca52e8007c)
图1-28 选择安装路径
提示:在“商店”中,默认提示的是Java 6版本而不是比较新的Java 7甚至是Java 8,也许是出于稳定性的考虑吧。不过对于有其他需要的读者来说,自行安装较新版本的Java也许是一个更好的选择。本书以默认的Java 6来演示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00031.jpg?sign=1738939899-BNV3ForLdbK3Q0wjxQwucqYdaWrtSVmn-0-9c5ee90606115c75e477d7d90a0220b7)
图1-29 完成安装
(4)虽然完成了安装,但并不代表此时的JDK已经可以使用了,还需要对环境变量进行一个简单的配置。回到桌面,右击“我的电脑”|“属性”(在Win7或者Win8中也可能会叫做“计算机”或者“这台电脑”等名称)。单击左侧的“高级系统设置”选项,如图1-30所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00032.jpg?sign=1738939899-dna4pylv4wQycYrnLonoYV1hYVSpo89d-0-62d2ceb5a39ac0ee0a3976c71ab0ecb6)
图1-30 单击“高级系统设置”
(5)在弹出的“系统属性”对话框中单击“高级”选项卡中的“环境变量”按钮,如图1-31所示。可以在其中对Java的环境变量进行配置,效果参考图1-32。
首先找到JDK的安装路径C:\Program Files\Java\jdk1.6.0_32。这就是环境变量Java_HOME的内容。新建一个环境变量Java_HOME,然后将C:\Program Files\Java\jdk1.6.0_32填入其中。
新建环境变量classpath并填入内容“.;%Java_HOME%\lib;%Java_HOME%\lib\tools.jar”,然后再找到path变量发现其中已有内容,比如:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\ OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\ x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL; C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\ Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT; C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\GtkSharp\2.12\bin
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00033.jpg?sign=1738939899-tue3IU5GEwrQfayGLNdeCpbeknvNnshj-0-9eb531c86e02d5754d735e34caebdbcc)
图1-31 环境变量
在其结尾处加入分号并加入内容“%Java_HOME%\bin;%Java_HOME%\jre\bin”,使最终的内容为:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program
Files (x86)\Intel\ OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\ x64;C:\Program
Files\Intel\Intel(R) Management Engine Components\DAL;C:\ Program Files\Intel\Intel(R) Management Engine
Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files (x86)\Intel\Intel(R) Management Engine Components\IPT; C:\Program Files\Microsoft SQL
Server\110\Tools\Binn\;C:\Program Files (x86)\ Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL
Server\ 120\Tools\Binn\;C:\Program Files (x86)\GtkSharp\2.12\bin; %Java_HOME%\bin;%Java_HOME%\jre\bin
然后单击“确定”按钮保存。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00034.jpg?sign=1738939899-ZsV38g2afIAUdMbgA7C5cbZXnks9HT4k-0-f342dcbdb9aae79915e82aeb15e9e296)
图1-32 设置环境变量
(6)最后,打开“命令提示符”,分别输入java和javac命令(如图1-33和图1-34)都可以执行的话,则证明环境变量已经配置完成。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00035.jpg?sign=1738939899-Qm8EsAMpJqFcpaRRREm79euhot9czVWM-0-568757aac51c108ef80e7d6b25a64d2b)
图1-33 执行java命令
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00036.jpg?sign=1738939899-mrjdxiE2NwqILvL3y3AWkU0ndg1VX3cB-0-105b60605617919100544076df86817e)
图1-34 执行javac命令
提示:实际上即使不对环境变量进行配置,只用默认路径安装java,命令也是可以执行的,但是为了保险起见最好还是进行配置。
1.3.2 ADT的使用
本小节应该是最轻松的了,因为谷歌已经将ADT与Eclipse进行了整合,可以直接去安卓开发的官网下载。由于某些原因读者访问谷歌并不是很方便,那也不用担心,笔者访问谷歌同样不方便。因此,为了让自己在重装系统之后安装ADT能够方便一些,笔者下载好了一套程序将其上传到了百度网盘中,地址为:http://pan.baidu.com/s/1i3FzjBR,读者可以直接去下载。
(1)下载完成后,将其解压放置于D盘根目录下,如果嫌它名字后面的一大串数字太长太麻烦,可以给它修改名字,比如adt,然后将其打开可以看到3个文件夹,如图1-35所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00037.jpg?sign=1738939899-tuzI7jiUKlCSWamD2tPx4mg4j2GuWSwC-0-aeef1c8a543845e6b6544178b4d03149)
图1-35 解压后的adt
(2)直接打开eclipse目录运行eclipse.exe就可以了,效果如图1-36所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00038.jpg?sign=1738939899-Flo5K98cn4J1mZ5fUuqzyd7cu51mgXCR-0-76df52a78f83e3eaea7193663dec5350)
图1-36 Eclipse启动
(3)在Cocos2d-x中使用的语言是C++,而在安卓开发中使用的语言是Java,要想让C++能够在安卓系统下重编译运行,还需要使用到NDK,它可以在“商店”中下载,如图1-37所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00039.jpg?sign=1738939899-Cn2s1xYHpwyRwPsfnK06we6GcdJLEGz3-0-a28b4df8bb733a92a58315714475179d)
图1-37 下载NDK
(4)将NDK下载完成之后,同样是将其解压并复制到D盘根目录下,为了方便可以直接给它改成一个比较简短的名字,比如NDK。然后修改NDK的环境变量只需要在path中加入当前的路径就可以了,比如:D:\NDK。
(5)在命令提示符中输入命令ndk-build,出现如图1-38所示的内容则证明NDK配置完成。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00040.jpg?sign=1738939899-nvt22gjHyUlTdba9tY9Wrxt9LYEBbj2u-0-19086a89ce1c08f9547a097b8638c081)
图1-38 NDK配置完成
(6)此时创建一个新的项目,然后在Visual Studio中确认程序是可以运行的。打开Eclipse,在菜单中选择File|Import命令(如图1-39)导入一个已存在的项目。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00041.jpg?sign=1738939899-eFz2oyqsKlHtMriulkox0ACgABMJL3nR-0-0ebe2c48f9a17d3052f1989dd0a44ece)
图1-39 导入已存在的项目菜单
(7)在弹出的Import对话框中选中如图1-40所示的选项,表示已经存在的项目,然后单击Next按钮。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00042.jpg?sign=1738939899-4cQkNLtYZqLqb4ZqcxsE6u02nPgiZXEr-0-fc02896455c6e2e902ef7a80cc503a30)
图1-40 导入已存在的项目
(8)接下来单击图1-41所示的Browse按钮,找到对应的项目目录下的proj.android目录,并选中,然后单击Finish按钮完成项目的导入。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00043.jpg?sign=1738939899-CDYqWxlf4qdGUk0WvbGAdIyDqVVnDFgT-0-0a82ecf1a2b14cc3731047d16878774d)
图1-41 单击Browse按钮找到对应的项目
(9)然后就可以直接在安卓系统上运行,不过这里并不建议在虚拟机中使用。首先是某些版本的虚拟机本身就不支持Cocos2d-x程序,其次是虚拟机的性能要带动Cocos2d-x程序也是挺让人操心的。那么下面就来介绍如何在真机上运行Cocos2d-x程序。
1.3.3 如何在真机上运行Cocos2d-x程序
因为大家都是初学者,这里给出了详细的步骤。
(1)要在真机上运行Cocos2d-x程序你需要有一部手机或者平板。
(2)利用USB将它连接到电脑上,并且确认能够被电脑识别。
(3)在Eclipse中选中当前项目并右击,然后在快捷菜单中选择Run As|Run Configurations命令,如图1-42所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00044.jpg?sign=1738939899-iRb4yyT1f0YntWVn2iV0NjvEXFywvZwY-0-4e679c5634ae718755b355032196de27)
图1-42 找到Run Configurations
(4)在弹出的对话框中找到如图1-43所示的选项,选择Active devices选项,再单击右下角的Run按钮运行即可。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00045.jpg?sign=1738939899-aDQROWmKNWcllPYfmC9nI0hhKkLlurEC-0-ffeb3548923081207179405ee266daac)
图1-43 对项目运行方式进行设置
(5)稍等一会,就能在手机中看到新项目的运行效果了。
1.3.4 多个类的情况
这时程序已经被移植到安卓系统下了,但是这里要预先提醒大家一件事,那就是在本项目中并没有自定义任何额外的类,而在实际开发中肯定会使用到许多额外的类。这时再使用这样的方法Eclipse就会提示类似“该类没有被定义”之类的内容了。
此时就应该找到项目中有一个名为Android.mk的文件,如图1-44所示,打开它之后会发现其中有如下代码:
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00046.jpg?sign=1738939899-PX87KHGrmCcYqW3mQJ6kU0UQkc9GxSi3-0-5bb46ce7512582b0e069f32152b9a8aa)
图1-44 Android.mk
不需要理解这几句话的具体含义,直接看一下在本项目中引用了哪些类,如图1-45所示。可以看到其中新加入的类有:HRocker、MapScene、HeroSprite,我们可以模仿其中的格式将其修改如下:
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HRocker.cpp \ ../../Classes/MapScene.cpp \ ../../Classes/HeroSprite.cpp \ ../../Classes/HelloWorldScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
提示:笔者是为了便于演示,随意找了一个项目来举例子,读者可以在源文件中寻找范例来测试。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00047.jpg?sign=1738939899-i4z8udhQZFJA1w5WwYhjZM793znRaLF5-0-bbd8aa609d366661f1fc70c6e20c6b2f)
图1-45 查看项目中都定义了哪些类
然后,保存文件就可以在手机上运行了。