本文介绍了cocos2dx在PC上的调试开发环境搭建,以及android上的apk包的生成过程。
首先推荐一个链接,基本按照该文章可进行环境搭建。不过有一些地方似乎有错误,做了些修改。
cocos2dx简介
Cocos2d-x是一个支持多平台的2D手机游戏引擎,使用C++开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone,iOS 4.1,Android 2.1及更高版本,WindowsXP & Windows7,WindowsPhone 8,Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台。Cocos2d-x提供的框架外,手机游戏,可以写 在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行iOS,Android 的三星Bada,黑莓Blackberry操作系统和更多。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,我们可以编写的源代码很容易在桌面操作系统中编辑和调试。cocos2dx环境搭建
安装包准备
需要准备如下安装包:(注意:要区分自己的PC系统是32位还是64位,分别下载对应的安装包。)
jdk-7u51-windows-x64.exe
介绍:jdk是启动eclipse需要的一个java环境,而且ant工具打包生成apk压缩包时也需要这个java环境。(注意:只下载jre不够,ant工具需要jdk)
安装:下载后直接双击安装。
adt-bundle-windows-x86_64-20131030.zip
介绍:里面有配置好的(开发android用的)eclipse,sdk两个目录和一个SDK Manager管理软件。
现在adt-bundle都集成了下面的功能,这样就不用再去配置eclipse插件了。
Eclipse + ADT plugin
Android SDK Tools
Android Platform-tools
The latest Android platform
The latest Android system image for the emulator
安装:下载后直接解压即可以使用。
android-ndk-r9c-windows-x86_64.zip
介绍:ndk全称Native Development Kit,可用本地语言(c++等)开发android程序。
安装:下载后直接解压即可以使用。
apache-ant-1.9.3-bin.zip
介绍:打包apk工具。
安装:下载后直接解压即可以使用。
cocos2d-x-2.2.2.zip
介绍:cocos2dx引擎源代码。
安装:下载后直接解压即可以使用。
介绍:jdk是启动eclipse需要的一个java环境,而且ant工具打包生成apk压缩包时也需要这个java环境。(注意:只下载jre不够,ant工具需要jdk)
安装:下载后直接双击安装。
adt-bundle-windows-x86_64-20131030.zip
介绍:里面有配置好的(开发android用的)eclipse,sdk两个目录和一个SDK Manager管理软件。
现在adt-bundle都集成了下面的功能,这样就不用再去配置eclipse插件了。
Eclipse + ADT plugin
Android SDK Tools
Android Platform-tools
The latest Android platform
The latest Android system image for the emulator
安装:下载后直接解压即可以使用。
android-ndk-r9c-windows-x86_64.zip
介绍:ndk全称Native Development Kit,可用本地语言(c++等)开发android程序。
安装:下载后直接解压即可以使用。
apache-ant-1.9.3-bin.zip
介绍:打包apk工具。
安装:下载后直接解压即可以使用。
cocos2d-x-2.2.2.zip
介绍:cocos2dx引擎源代码。
安装:下载后直接解压即可以使用。
注意:当我们创建一个cocos2dx的项目(svn协同开发时),可以直接将cocos2dx的项目源码放到我们的项目主干中,这样可以方便我们直接修改引擎底层。
例如:在E:\workspaces中创建一个项目主干shouyou,将cocos2dx源码包中的主要文件夹复制过来,如图。
下个步骤要设置环境变量,COCOS2DX_ROOT要设置为E:\workspaces\shouyou
python-2.7.6.msi
介绍:用来cocos2dx创建工程的脚本程序。
安装:下载后直接双击安装。jdk是启动eclipse需要的一个java环境,而且ant工具打包生成apk压缩包时也需要这个java环境。(注意:只下载jre不够,ant工具需要jdk)
安装:下载后直接双击安装。
环境变量设置
设置用户环境变量即可。
ANDROID_SDK=E:\adt-bundle-windows-x86_64-20131030\sdk
ANT_HOME=E:\apache-ant-1.9.3
COCOS2DX_ROOT=E:\workspaces\shouyou
JAVA_HOME=D:\Program Files (x86)\Java\jdk1.7.0_51
NDK_ROOT=E:\android-ndk-r9c
PYTHON_HOME=D:\Program Files (x86)\Python27
然后编辑PATH,追加%JAVA_HOME%\bin;%ANT_HOME%\bin;%PYTHON_HOME%;%NDK_ROOT%;%ANDROID_SDK%\tools;%ANDROID_SDK%\platform-tools;
ANT_HOME=E:\apache-ant-1.9.3
COCOS2DX_ROOT=E:\workspaces\shouyou
JAVA_HOME=D:\Program Files (x86)\Java\jdk1.7.0_51
NDK_ROOT=E:\android-ndk-r9c
PYTHON_HOME=D:\Program Files (x86)\Python27
然后编辑PATH,追加%JAVA_HOME%\bin;%ANT_HOME%\bin;%PYTHON_HOME%;%NDK_ROOT%;%ANDROID_SDK%\tools;%ANDROID_SDK%\platform-tools;
修改cocos2dx源码配置
新建android_update.bat
在使用ant工具生成apk的时候,会需要知道,你编译的目标是什么版本和src.dir等信息。创建这个文件,就是为了自动更新它。批处理的内容是android update project -p . -t android-10
该文件建好后,命名为android_update.bat,放在E:\workspaces\shouyou\template\multi-platform-cpp\proj.android
注意,请先确认你的ANDROID_SDK是否安装了对就的版本,android-10是对应的是android2.3,其他的版本请用对应的数字。执行E:\adt-bundle-windows-x86_64-20131030\SDK Manager.exe,如下图所示:
这里的数字是19
那么批处理的内容改为
android update project -p . -t android-19
新建build_native.bat
有的文章是下载cygwin去执行cocos2dx中原有的build_native.sh文件,但是cygwin太大了,下载很慢,所以按照build_native.sh的逻辑自己写一个bat文件就好,这样直接在windows cmd运行就OK了。文件内容如下:
@echo off
set DIR=%~dp0
set APP_ROOT=%DIR%..\
set APP_ANDROID_ROOT=%DIR%
echo - config:
echo NDK_ROOT = %NDK_ROOT%
echo COCOS2DX_ROOT = %COCOS2DX_ROOT%
echo APP_ROOT = %APP_ROOT%
echo APP_ANDROID_ROOT = %APP_ANDROID_ROOT%
echo - cleanup
if exist "%APP_ANDROID_ROOT%assets" rmdir /s /q "%APP_ANDROID_ROOT%assets"
mkdir "%APP_ANDROID_ROOT%assets"
xcopy /e /q "%APP_ROOT%Resources\*.*" "%APP_ANDROID_ROOT%assets\"
echo Using prebuilt externals
"%NDK_ROOT%\ndk-build" %ANDROID_NDK_BUILD_FLAGS% -C %APP_ANDROID_ROOT% NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt
将该文件放置E:\workspaces\shouyou\template\multi-platform-cpp\proj.android目录下。
如此,对cocos2dx源码配置的修改就可以了。
创建工程
在cocos2dx的2.2中,已经少了一些批处理来创建工程,现在全部改用python来创建工程。
现在到E:\workspaces\shouyou\tools\project-creator下,创建一个批处理FirstApp.bat,内容如下:
第二行的意思,复制编译andiroid工程需要的java文件。否则编译的时候,会提示找不到对应的类。
创建的工程在E:\workspaces\shouyou\projects目录中。
现在到E:\workspaces\shouyou\tools\project-creator下,创建一个批处理FirstApp.bat,内容如下:
create_project.py -project %~n0% -package com.android.zdhsoft -language cpp
xcopy ..\..\cocos2dx\platform\android\java\src\* ..\..\projects\%~n0%\proj.android\src /E
上面批处理的第一行的意思是,建一个工程为%~n0%的工程,包名是com.android.zdhsoft,使用的语言是cpp。%~n0%在批处理表示的是 批处理的文件名,在FirstApp.bat中,%~n0%的值是FirstApp。使用该批处理的好处是,如果建立某一个工程,只有把批处理复制一个,然后重新命名就可 以了。如命名为sample.bat,执行后,就可以行到一个sample的cocos2dx工程。
第二行的意思,复制编译andiroid工程需要的java文件。否则编译的时候,会提示找不到对应的类。
创建的工程在E:\workspaces\shouyou\projects目录中。
PC上编译调试
直接双击E:\workspaces\shouyou\projects\FirstApp\proj.win32路径下的FirstApp.sln,就可以在PC上的VS2010上编译调试了。运行结果如下:
编译期间可能会产生错误,如下:
解决方法:
将
设置为“否”。
android交叉编译
step1:确定工程名称,如FirstApp,在E:\workspaces\shouyou\tools\project-creator目录下,新建FirstApp.bat,运行生成项目。
step2:到E:\workspaces\shouyou\projects\FirstApp\proj.android目录下,双击android_update.bat。
step2:到E:\workspaces\shouyou\projects\FirstApp\proj.android目录下,双击android_update.bat。
会生成一个如下3个文件
修改project.properties文件,将其中的如下语句注释。
android.library.reference.1=../../../cocos2dx/platform/android/java
修改E:\workspaces\shouyou\projects\FirstApp\proj.android\AndroidManifest.xml文件。
将8改为19。
step3:到E:\workspaces\shouyou\projects\FirstApp\proj.android目录下,运行build_native.bat。
开始编译,如下图:
step4:输入命令ant debug
执行完后,在E:\workspaces\shouyou\projects\FirstApp\proj.android\bin目录下面,就可以看到对应的apk了。