Cocos2d-x 开发之环境搭建
一、 簡介
Cocos2d是使用object-c语言开发,运行于ios系统的一款游戏引擎,为了让这款引擎能在更多的平台使用,国内的牛人根据cocos2d开发出了cocos2d-x,采用c++开发。Cocos2d-x这个开源项目的目标是让用户创建跨平台的代码。支持的平台有iOS、Android、WinPhone、Win32平台上等。
优点:基于OpenGL ES,跨平台等;
缺点:相关文档并不完善,引擎各版本之间API经常有变动,例如前一版本中的某个接口,在下一个版本中可能名称被修改或是调用方式完全修改,这对开发者会造成一定的困扰。
我开始cocos2d-x开发之路时,是需要根据一份ios代码,完成相应的android版本,所以我采用的方式是window下eclipse和mac虚拟机下xcode共同完成的,即在eclipse和xcode中分别创建基于cocos2d-x的工程,将xcode工程资源目录指向eclipse中工程目录地址,在xcode编写代码并使用iphone和ipad模拟器运行,在eclipse中使用NDK编译后运行。
二、 環境搭建
1.从http://cocos2d.cocoachina.com/下载一份cocos2d-x引擎包(我目前使用的是2.1.2版本),解压;
2.在windows下配置好JDK+eclipse+ADT环境,启动eclipse;
3.下载NDK的包(如http://dl.google.com/android/ndk/android-ndk-r7-windows.zip),解压;
4.下载cygwin;
5.编辑cocos2d-x目录下的create-android-project.bat,将set _CYGBIN、set _ANDROIDTOOLS和set _NDKROOT分别改为相应路径,例如:
set_CYGBIN=D:\cygwin\bin
set_ANDROIDTOOLS=D:\android-sdk\tools
set_NDKROOT=D:\android-ndk-r8b-windows\android-ndk-r8b
6.创建android工程:双击create-android-project.bat(如提示没有权限之类的,就右击然后点击“Run as administrator”),根据相关提示输入相关信息即可。
7.创建完毕会在相应工程下看到三个文件夹:Classes、proj.android和Resources,其中Classes中存放的是c++编写的代码,Resources中存放资源文件,proj.android存放的是android工程;
8.导入proj.android中的工程到eclipse中;
9.配置NDK环境:
NDK_MODULE_PATH的设置如:D:\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2;D:\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\cocos2dx\platform\third_party\android\prebuilt
10. 在手机上运行,正常时会看到一张图片;
11. 修改Classes下的代码或是点击clean,会在控制台看到NDK重新编译c++代码,编译成功时会提示生成了game.so文件,android代码中正是使用JNI调用该文件从而在android手机中运行的。
在eclipse中再安装好CDT,就可以直接在eclipse编写C++代码了,由于我还需要在ios系统运行,下面接着介绍如何在mac系统中配置cocos2d-x开发环境。
12. 没有mac开发机,为了能使用同一份代码,故我在windows系统中安装了mac虚拟机(如果你是mac系统,可直接安装eclipse),安装好xcode;
13. 拷贝cocos2d-x的包到mac系统,在终端中运行:
cd$COCOS2DX_HOMEsudo./install-templates-xcode.sh–u
其中$COCOS2DX_HOME为cocos2d-x在你的mac系统中的目录。
14. 打开xcode,创建项目,会在项目模板中看到cocos2dx,使用该模板创建项目;
下面让xcode中的项目使用windows下eclipse中的资源
15. Finder-》前往-》连接服务器-》smb://10.200.x.xx-》连接(其中10.200.x.xx为windows下电脑的ip地址,在windows中将eclipse工程的路径设置为共享,mac下连接之后,即可看到共享目录);
16. 将xcode工程中的Classes和Resources删除,右击xcode工程目录-》add files to “”,选择工程目录中的Classes和Resources目录-》add。
17. 现在xcode工程使用的即是windows中eclipse工程中的代码和资源文件,在xcode中修改,在eclipse中会马上看到新修改的,反之亦然。在xcode中使用iphone虚拟器运行,看到的效果跟在eclipse中运行的一样。
三、 連接
官網:http://cocos2d.cocoachina.com/
四、 常见问题:
1.在下载cygwin时,需要将Devel项由Default改为Install再继续,否则装好的cygwin中make等命令都默认没有安装的;
2.使用cygwin时,经常出现Permiss Denied 错误,会发现是项目创建后很多文件没有读写权限,可使用命令chmod-R 777 * 将所有子目录权限都递归一并修改了;
3.在使用cocos2d-x中的create-android-project.bat 创建工程时,有时候权限不够,可以右键使用管理者身份运行;运行有时会因为目录位置报错,可以在文件的第一句配置一下:cd/d %~dp0
4.The lowest version cocos2d-x supports isandroid-8。所以在創建android項目時,輸入id需要輸入版本大於等於8的id;
5.在eclipse运行编译时,添加到了Resource下的图片等资源,需要手动复制一份到assets下面(直接用cygwin编译就不用)。
6.编译Coco2d-x android 程序出现make: *** No ruleto make target ...CCConfiguration.o'. Stop.
解决办法:将eclipse工程中的obj文件夹删除重新编译。(详解请见:http://www.jb51.cc/article/p-zhlttdwo-ym.html)