Cocos2dx笔记(一)

本文总结一些关于Cocos2dx中的一些配置及相关编译的内容,以Windows为平台(Win7)进行测试,Cocos2dx 3.x(3.4),Apache-ant-1.9.x(1.9.6),Ndk-r9+(r10e)。 一、首先是开发环境的配置,不啰嗦,看(官方文档):

在Windows7上搭建Cocos2d-x 3.2alpha0开发环境

如何在Windows 7平台搭建Android Cocos2d-x3.2alpha0开发环境

配置下来设置了一堆的环境变量,见下方,应该都在这了。。(Windows!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//用户
ANT_HOME/F:\code\cocos2dx\apache-ant-1.9.6
ANT_ROOT/F:\code\cocos2dx\apache-ant-1.9.6\bin
COCOS_CONSOLE_ROOT/F:\code\cocos2dx\cocos2d-x-3.4\tools\cocos2d-console\bin
COCOS_TEMPLATES_ROOT/F:\code\cocos2dx\cocos2d-x-3.4\templates
NDK_MODULE_PATH/F:\code\android\adt-bundle-windows-x86_64-20140702\sdk\platforms;F:\code\android\adt-bundle-windows-x86_64-20140702\sdk\tools;F:\code\android\adt-bundle-windows-x86_64-20140702\sdk\platform-tools
Path/F:\code\cocos2dx\cocos2d-x-3.4\templates;F:\code\cocos2dx\cocos2d-x-3.4\tools\cocos2d-console\bin;%ANT_HOME%/bin;%ANT_HOME%/lib;
//系统
JAVA_HOME/C:\Program Files\Java\jdk1.8.0_40
NDK_ROOT/F:\code\ndk\android-ndk-r10e
ANDROID_SDK/F:\code\android\adt-bundle-windows-x86_64-20140702\sdk\platforms;F:\code\android\adt-bundle-windows-x86_64-20140702\sdk\tools;F:\code\android\adt-bundle-windows-x86_64-20140702\sdk\platform-tools
CLASSPATH/.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path/%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANDROID_SDK%;%NDK_ROOT%;C:\Python27;
ANDROID_SDK_ROOT/F:\code\android\adt-bundle-windows-x86_64-20140702\sdk

配置好后,进入到/cocos2dx目录/,运行python setup.py命令检测配置情况,也可以设置部分环境变量。如下图:

二、开始Cocos2dx征程

创建Cocos2dx工程,有几种方式:

注意,每条命令后面有针对Cocox2dx的版本要求。

1、以下均需要配置好所有的环境之后!

命令:cocos new projectName -p packageName -l cpp -d project_dir(Cocos2dx版本v3.x)

2、进入到Cocos2dx目录/tools/cocos2d-console/bin/

命令:python cocos.py new HelloCpp -p com.coco2dx.org -l cpp -d ~/Desktop(Cocos2dx版本v3.x)

3、进入到Cocos2dx目录/tools/project-creator/

命令:python create_project.py -project projectName -package packageName -language cpp(Cocos2dx版本v2.x)

使用上面的任意一条命令,就能针对不同版本的Cocos2dx创建工程。

工程创建好了,接下来编译运行就OK了。

win32平台编译运行:

a、用Visual Studio编译见顶部的官方文档链接;

b、进入工程目录下,使用命令:cocos run -p win32(Cocos2dx版本v3.x)编译运行。

Android平台编译运行:

a、进入/工程目录/proj.android,执行命令python build_native.py,等待编译完成后,将/工程目录/proj.android/导入到Eclipse中即可。

以上导入到Eclipse中的项目可能会出现找不到包org.cocos2dx.lib.Cocos2dxActivity问题,导入/cocos2dx目录/cocos/platform/android/java项目,将其添加到自己Cocos2dx项目的library,导入的Cocos2dx项目需要设置is library,如下:

b、进入/工程目录下,使用命令:cocos run -p android(Cocos2dx版本v3.x)编译运行,默认会将生成.apk文件安装到连接的手机或虚拟机上。

若出现如下问题,

这是Android SDK tools to 24.3.2 的一个Bug,解决办法是在/android-sdk-path/tools/ant/build.xml的484 行添加以下内容:

1
2
3
4
property name="aidl" location="${android.build.tools.dir}/aidl${exe}"
property name="aapt" location="${android.build.tools.dir}/aapt${exe}"
property name="dx" location="${android.build.tools.dir}/dx${bat}"
property name="zipalign" location="${android.build.tools.dir}/zipalign${exe}"

当然这些都太麻烦了,在Windows下,写个脚本,帮助我们处理这些复杂的过程,脚本已备好,gitlab传送门_V3.x(针对Cocos2dx V3.x版本),gitlab传送门_V2.x(针对Cocos2dx V2.x版本,V2.x里面只有一个创建工程的脚本,不支持编译),因为V2.x中没有直接编译的脚本,下面的内容均以V3.x为例。

两个脚本,一个是创建工程的脚本,一个是编译的脚本,两个脚本需要放在同一个文件夹下!!!

第一次使用时需要设置编辑自己的两个路径:

1
2
set COCOS2DX_DIR=F:\code\cocos2dx\cocos2d-x-3.4     //Cocos2dx的路径
set PROJECT_DIR=F:\code\cocos2dx\projects                    //工程项目保存路径

运行cc2dx_proj_creater_3.x.bat创建工程,如下:

另一个脚本没用?no,进入到创建好的工程目录下,发现了cc2dx_proj_complie_3.x.bat这个脚本,对!它已经被复制过来,现在就可以随时的进入到工程目录下随时编译代码!如下图,提供了两种平台的编译,当然,想要增加其他平台,自己改改这个脚本就行了。

下图是编译到了Android手机上的效果图:

问题集:

Q:在Eclipse中编译Android平台之后,再用命令编译运行失败?

A:如果在Eclipse中打开过,再次用cocos run -p android命令编译运行,由于依赖的cocos2d library路径可能被改变,导致编译失败。解决办法,需要修改以下:

.android.properties 文件。

在Eclipse中,设置了工程的依赖cocos2d library为下面这个地址(根据自己的cocos2dx安装位置而定): android.library.reference.1=../../../cocos2d-x-3.4/cocos/platform/android/java

但是在cocos run -p android命令编译的时候,依赖的cocos library是当前工程下的cocos2d library,即为以下地址,所以需要修改为: android.library.reference.1=../cocos2d/cocos/platform/android/java

脚本下载:Cocos2dx.zip