![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=1739346095-vXjQSQjFe3kP03bEXehWraJXdUbeywy4-0-f99540dab98b4db20dbd9d8f6de4a4a9)
图1-26 在商店中下载JDK
(2)下载完成之后可直接双击运行安装,双击后出现如图1-27所示的界面。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00029.jpg?sign=1739346095-NlBKeRq3gJNfNdcaHV34IyvfvlTgB1fP-0-e6bf252cca31c3d50825cbdd7573152a)
图1-27 安装JDK
(3)单击“下一步”按钮,在如图1-28所示的界面中可以选择JRE以及一些范例的安装路径,这里保持默认路径不变,直接单击“下一步”按钮。接下来可以一直等待JDK的安装,直到出现如图1-28所示的界面,单击“完成”按钮完成安装。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00030.jpg?sign=1739346095-uBtiYhMrrwh57qn0rzLtEvYwy086PTKN-0-58ea180caf345321e9509dd687f44314)
图1-28 选择安装路径
提示:在“商店”中,默认提示的是Java 6版本而不是比较新的Java 7甚至是Java 8,也许是出于稳定性的考虑吧。不过对于有其他需要的读者来说,自行安装较新版本的Java也许是一个更好的选择。本书以默认的Java 6来演示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00031.jpg?sign=1739346095-PO7HMlNHsSCtBJobuMjNvxg6XQl8N0tD-0-94db56af282b997989f5cdbcf8fbf004)
图1-29 完成安装
(4)虽然完成了安装,但并不代表此时的JDK已经可以使用了,还需要对环境变量进行一个简单的配置。回到桌面,右击“我的电脑”|“属性”(在Win7或者Win8中也可能会叫做“计算机”或者“这台电脑”等名称)。单击左侧的“高级系统设置”选项,如图1-30所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00032.jpg?sign=1739346095-sjSV1Y2WXRC4LDoNRU5ixtEsGV6D9PO2-0-47407cb20dca61c4010d74fe032ac6f3)
图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=1739346095-08ESUxf2fbBxup2aJYqIPRzN9kzgnDLF-0-5e766d3c860981d666ca37c5faacd2b7)
图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=1739346095-DvoX9qsNyQvYKI6D0CLKSTGXb9mU0FRi-0-60369974c37d29803b3dbe2a699d927e)
图1-32 设置环境变量
(6)最后,打开“命令提示符”,分别输入java和javac命令(如图1-33和图1-34)都可以执行的话,则证明环境变量已经配置完成。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00035.jpg?sign=1739346095-6ZzI2pxM9qxCYBhUu1z8NhXz1exXJjVx-0-9f02af4edcbc2d9cf75887dd74ea0033)
图1-33 执行java命令
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00036.jpg?sign=1739346095-TvbPKlDAG4oaWaaplRz4wT4o4xjeGfBk-0-c05a3326b8d31cbe7d5b92c592b4131b)
图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=1739346095-jzwANHIWEXAkZsjbkuHOWcehrdPlsrvt-0-6b7630db2cedcb2c667f0779b9282322)
图1-35 解压后的adt
(2)直接打开eclipse目录运行eclipse.exe就可以了,效果如图1-36所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00038.jpg?sign=1739346095-kEELgNDn42NciegmJvj6fM6yTz9IEvk5-0-c37c12a5289704d1c17339544df394d3)
图1-36 Eclipse启动
(3)在Cocos2d-x中使用的语言是C++,而在安卓开发中使用的语言是Java,要想让C++能够在安卓系统下重编译运行,还需要使用到NDK,它可以在“商店”中下载,如图1-37所示。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00039.jpg?sign=1739346095-V7OAKm0E3bnOJOmQDJuaCGUAgRa8tz9d-0-fbfd0a78f1e1be1f2302c433a95f290e)
图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=1739346095-Oo0bOP33x1NjdKYO6xFgFG7CJrK2uXtF-0-0c9446ef2ac6c285669c6b919d397025)
图1-38 NDK配置完成
(6)此时创建一个新的项目,然后在Visual Studio中确认程序是可以运行的。打开Eclipse,在菜单中选择File|Import命令(如图1-39)导入一个已存在的项目。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00041.jpg?sign=1739346095-Py5IVpJjbifdel3Bo07fgzkgzvAYlAej-0-e7ff9e393e154dc9e45f72a0e395a038)
图1-39 导入已存在的项目菜单
(7)在弹出的Import对话框中选中如图1-40所示的选项,表示已经存在的项目,然后单击Next按钮。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00042.jpg?sign=1739346095-i80t1x9WO9RXk2BNqwtykxgqIvvXLaL6-0-edaaa66e692a4af819469e7c6504872a)
图1-40 导入已存在的项目
(8)接下来单击图1-41所示的Browse按钮,找到对应的项目目录下的proj.android目录,并选中,然后单击Finish按钮完成项目的导入。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00043.jpg?sign=1739346095-I5oVLWcovOHXoIsSiSrtXpw38gmxIY7A-0-b28f79de9498d8dfb12bf9e079a00196)
图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=1739346095-peQZGBoDsk0kLSInRofDuk312ChZhEIh-0-6a70254a997773d067ad6dd3cbb0be6d)
图1-42 找到Run Configurations
(4)在弹出的对话框中找到如图1-43所示的选项,选择Active devices选项,再单击右下角的Run按钮运行即可。
![](https://epubservercos.yuewen.com/92B5CF/15477638304523706/epubprivate/OEBPS/Images/00045.jpg?sign=1739346095-fWyMQUM7ayeYlQBj2YNOYcLMcyblqMUs-0-9776f2beef3364b7e87487d5e4273566)
图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=1739346095-Jw0C90q4sVpfDydE0maTv09p5fKuGA5m-0-bca53cb957d7f34de35e1efbeb115b1f)
图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=1739346095-ZHH2bISUZDAx4omuMxPavdo4Uq0XzS3G-0-295d54b553d7a960c78cb660170712d1)
图1-45 查看项目中都定义了哪些类
然后,保存文件就可以在手机上运行了。