第二章 Cocos2D-X引擎的开发环境

来源:互联网 发布:sql判断是否为空 编辑:程序博客网 时间:2024/05/25 05:38

第二章 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/<你的盘符>/<android ndk 目录>例如:

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天,还是挺不容易的,哈哈!)

 

 

0 0