第二章 Cocos2D-X引擎的开发环境
1. Cocos2D-X支持的平台和版本:
2. Cocos2D-X跨平台开发方式:
3. libBox2D和libchipmunk是来自第三方的物理引擎。它们可以实现游戏中的物理模拟与碰撞检测。Libcocos2d则是引擎核心库,它为开发者提供了游戏制作所需的功能。libCocosDenshion是声音引擎。libExtensions是引擎的扩展库,其中包括了一些来自开发者分享的成熟功能。libLua则是为开发者提供的lua脚本支持库。
4. 单独编译运行工程:
5. 直接build, run, Visual Studio 2013会编译执行所有的工程。现在我们只build和run HelloCpp项目。
6. 关键问题:
右键HelloCpp,设为启动项, build,Run 成功,出现下面的图片:
7. Android开发环境的安装一定要按表中的先后顺序:
8. JDK的安装注意事项:
如果你下载了 64位的 Eclipse,但电脑上的 JDK 是32 位的,那可能启动 Eclipse 就会报错:Failedto load the JNI shared library jvm.dll。如下图:
换成64bit的JDK后,问题就能解决。
9. CDT的安装:
CDT可通过eclipse的Help → install new software来进行。
10. AndroidSDK Manager国内下载缓慢的问题:
在Android SDKManager Setting 窗口设置HTTP Proxy server和HTTP Proxy Port这个2个参数,分别设置为:
HTTP Proxy server:mirrors.neusoft.edu.cn
HTTP Proxy Port:80
然后把下面的Force..http://…sources to be fetched using http://..选项打钩,close Android SDK Manager Setting,然后在重新启动AndroidSDK Manager Setting,这时就可以快速下载了。
11. 引擎应用的结构:
专题:android的cocos2dx环境搭建:
1. 相关下载
(1) 下载 JDK
(2) 下载 Eclipse
(3) 下载 Android SDK
(4) 启动Eclipse , 安装 ADT
(5) 下载安装Android NDK
(6) 下载安装cygwin (下载后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、 gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包;确保Bin项变成叉号,而Src项是源码,这个就没必要选了)
(7) 下载cocos2d-x-2.0.1
2. 测试一下cygwin是不是已经安装好了:
运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。然后依次输入gcc –v,g++ -v,make –v,gdb –v进行测试,如果都打印出版本信息和一些描述信息,你的cygwin就安装完成了!
3. 配置NDK环境变量:
(1) 首先找到cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件,我的是:E:\cygwin\home\Administrator\.bash_profile;
(2) 打开bash_profile文件,添加NDK=/cygdrive/<你的盘符>/
NDK=/cygdrive/e/android-ndk-r5
export NDK
(3) 打开cygwin,输入cd $NDK,如果输出上面配置的/cygdrive/e/android-ndk-r5信息,则表明环境变量设置成功了
4. 测试NDK:
(1) 选择ndk自带的例子hello-jni,我的位于E:\android-ndk-r7\samples\hello-jni(根据你具体的安装位置而定)
(2) 运行cygwin,输入命令cd /cygdrive/e/android-ndk-r7/samples/hello-jni,进入到E:\android-ndk-r7\samples\hello-jni目录
(3) 输入$NDK/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)
(4) 去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!
5. 解压cocos2d-x-2.0.1,创建android版的cocos2dx的HelloWorld:
(1) 用代码阅读工具(notepad++)打开create-android-project.bat
(2) 设置环境变量路径:
set_CYGBIN=C:\cygwin\bin(这是我的路径,请设置成自己对应的安装路径)
set_ANDROIDTOOLS=C:\Users\Potter\Documents\work\Android\android-sdk-windows\tools(同理)
set_NDKROOT=C:\Users\Potter\Documents\work\Android\android-ndk-r8(同理)
记得保存,设置好这3个环境变量就ok了.
(3) 在文件头部“Don’t change it until you know what you do.”之后一行加上“cd /d %~dp0“
6. 重新打开create-android-project.bat,(注意:如果是win7或win8,请以管理员的身份运行,否则又会出现问题)
输入包名(注意格式),然后再输入工程名
7. 用cygwin编译我们产生的工程:
如图:(图中红框处有误,应为build_native.sh)
回车后:
问题1:出现“Please define NDK_ROOT”的错误。
解决方法:在build_native.sh文件中的”if[ -z “${NDK_ROOT+aaa}”]”前加上NDK的路径(注意格式/cygdrive/你的NDK路径)。
问题2:出现“…… /android/jni/JniHelper.h:28:18: fatal error:string:No such fileor directory“的错误。
解决方法:将cocos2dx例子中的Application.mk拷过来,修改下内部名称为“JniHelper.h”即可。
问题3:出现”fatal error: GLES2/gl2platform.h: No such file or directory“的错误。
解决方法:将Application.mk 后面加上 APP_PLATFORM := android-8。该文件如果没有移动到自己工程里proj.android的jni文件夹里,则复制过去。
正确的运行结果如图:
如果是第一次编译会产生很多信息的,不过最后的信息和我这一样,这是你创建的工程HelloWorld就成功了
注意:
库生成的时候没有权限造成so生成失败(win7或win8可能出现此问题),如图:
(看懂这些错误需对Linux命令行有所了解,如“../”是上级目录的意思)
此时需要获取相应文件的访问权限,为了省麻烦,写了个快速赋权的注册表文件内容如下:
WindowsRegistry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe/c takeown /f \"%1\" && icacls \"%1\" /grantadministrators:F"
"IsolatedCommand"="cmd.exe/c takeown /f \"%1\" && icacls \"%1\" /grantadministrators:F"
[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe/c takeown /f \"%1\" && icacls \"%1\" /grantadministrators:F"
"IsolatedCommand"="cmd.exe/c takeown /f \"%1\" && icacls \"%1\" /grantadministrators:F"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe/c takeown /f \"%1\" /r /d y && icacls \"%1\"/grant administrators:F /t"
"IsolatedCommand"="cmd.exe/c takeown /f \"%1\" /r /d y && icacls \"%1\"/grant administrators:F /t"
将上面的代码放入文本文档,保存,改名为reg文件,运行,便可以为windows 7右键添加取得所有权的菜单。如下图:
如果再次出现有访问权限的问题,右键点击下目录,选择管理员取得所有权即可(这时后面的所有操作都要以管理员的身份进行)
编译成功之后,会直接在 [projectname]\proj.android\libs\armeabi这个目录底下生成so文件(libgame.so)
8. 将编译完的工程导入eclipse中:
File----import----existandroid XXXX----选择你的项目的目录(其他的不动)----编译运行即可(中间还可能出现权限问题,对相关的文件赋予操作权限即可)
9. 将在eclipse里生成的apk文件安装到手机或平板上即可得到如下的运行效果:
(上述过程中可能会遇到一些细节问题,网上查一查,都是可以解决的,到此Cocos2Dx的android环境就建好了。搞了3天,还是挺不容易的,哈哈!)