cocos2d-x学习之路——1

来源:互联网 发布:淘宝开店认证需要什么 编辑:程序博客网 时间:2024/05/16 05:36


最近在学习cocos2d-x,虽然自己有C++的基础,但是对于cocos2d-x还是第一次接触,所以准备记录自己在学习过程中的问题,以备日后所需吧。

cocos2d-x是一个跨平台的引擎,以C++语言为基础,可以通过在不同平台上编译而生成能够在windows,android,ios上运行的程序。想要开发cocos2d-x的程序,首先搭建环境吧!

以cocos2d-x引擎开发项目,当然cocos2d-x引擎代码是必须的,在 http://www.cocos2d-x.org/ 可以进行下载,在Download标签下有cocos2d-x的下载,截止到写这篇博客的时候(2014/02/28),最新的版本为2.2.2,不过有3.0的Beta可以下载,听说3.0有很多新的特性,但是我也没有基础去研究这些。

cocos2d-x解压到任意目录都可以。

1、windows下环境:

cocos2d-x生成windows下的可运行程序,需要的环境很简单,就是VisualStudio,我自己选择的是2010版本。安装vs时,一定要选上C++语言的内容。

在安装完VS之后,找到cocos2d-x目录下的sln文件。

打开cocos2d-win32.vc2010.sln(我的vs是2010版本,其他版本选择对应的sln,不过2.2.2版本的cocos2d-x,只有2010和2012两个),在打开之后,会启动vs,等待全部文件加载完成,应该是这样的


用红线划掉的,是我自己建立的项目,一开始是不存在的,其他项目都是原有的。把HelloCpp设置为启动项目(右键点击项目->设置为启动项目),然后生成解决方案,这个过程很漫长,可能和个人电脑有关系吧。等到全部生成之后,看一下控制台的输出,默认情况下,应该是每什么问题的。

生成完成了,运行HelloCpp吧!



可爱的小图标。

除了HelloCpp还有一些其他的测试项目,其中testCpp应该是最重要的吧,因为里面演示了很多可能会用到的类和函数的使用,我也在从这个项目里,慢慢的学习。

据说从cocos2d-x的2.0版本开始,新建项目需要通过python来进行,不过有一个东西叫cygwin,他集成了python的功能,可以用来新建cocos2d-x项目。cygwin是一个在windows上运行的Linux模拟环境,当然也就可以使用Linus下的一些命令。cygwin有三种不同的安装方式,我自己是在下载好安装包之后,选择的本地安装方式进行的。我在看其他教程的时候,说是sygwin最好安装的默认目录,也就是C盘,这样可能会少很多问题,我乖乖的听话了。

在安装cygwin的过程中,有一步是选择安装包(select packages),这时候,在每一个树形节点后面,都有一个选择安装操作的类型(包括默认,安装、卸载,重新安装),同级的节点是相互独立的,我是直接在最顶层的节点选择了安装,这样的话可以安装上全部的内容,懒人的做法。

安装完成之后,打开cygwin,一路cd到cocos2d-x的路径下,然后继续cd到tools->project-creator


在这个目录下,有一个这个文件叫create_project.py,他就是用来创建新的cocos2d-x项目的东东。

cd到这个目录之后,输入命令:

python create_project.py -project 项目名字 -package eclipse里包的名字 -language 开发语言(一般都是cpp吧)

比如说,可以这样:python create_project.py -project MyTest -package com.cocos2dx.org -language cpp

如果cygwin没问题,而且有没有什么语法错误的话,回车之后,应该就可以创建项目了,从输出结果会发现,通过这个命令,不只是创建了在win32下的项目,在eclipse和ios里面,包括其他所有支持的全部平台的项目,都同时建立了。

创建完成之后,可以到cocos2d-x的project目录下看看,里面应该有一个文件夹就是刚才创建的项目,进到这个文件夹里面

Class是放置C++文件的地方,全部平台所用到的C++文件是同样的。Resources里面是一些资源文件,包括图片啦,其他文件啦,什么的。proj.win32就是vs下编译windows程序需要用到的东西,proj.android就是在eclipse中编译android程序需要用到的内容,其他的同理。

2、Eclipse,android

在eclipse下的环境配置,实在是让我痛苦了很久。

使用eclipse,是为了开发android下的应用程序,这个地球人都知道^_^,既然如此,jdk就是必须的了,我自己使用的是jdk的1.6版本,这个网上能下载的很多。不过有一点需要注意,看清楚是32位还是64位,eclipse和jdk一定要一样,不一样的话,打开eclipse的时候会报错,这个我就遇到了,0_0!。

如果jdk安装没问题,那eclipse打开应该也就没问题了,eclipse还是很好的,直接解压缩就可以,不需要安装。在解压了eclipse之后,就要开始安装一些其他的东东了,包括:

(1):ADT Android Development Tools,Android 开 发 插 件

(2):CDT C++ Development Tools,C++ 开发插件

(3):Android SDK Dalvik DebugMonitor Service

(4):Android NDK Native Development Kit(貌似是这么写),

下面,打开eclipse:


1)、安装ADT,在help标签下,选择Install New Software在弹出的对话框中添加地址http://dl-ssl.google.com/android/eclipse,然后点击Add,


点击add之后,会出现一个对话框,让你填上一个name,就是你填写的这个地址要下载的内容的名字吧,我写的ADT。点击OK,稍等一下,应该会出现下面的内容

全选,然后next开始安装吧,这是在线安装,速度视个人网络而定吧。

2)、安装CDT,CDT可以在这个网址下载,http://wiki.eclipse.org/CDT/User/DownloadCDTLate,下载完成之后,和ADT的安装方式一样,不过这次选择的是下载的CDT压缩包在本地的路径。下载好之后,愉快的安装吧。


3)、安装SDK,http://developer.android.com/sdk/index.html,在这个网址下载sdk,在这里可以选择单独下载sdk,也可以下载adt bundle,这里面有eclipse也有sdk。下载好后,解压,在eclipse中指定sdk的目录。

我自己下载的是ADT Bundle,在sdk目录里有sdk manager,不知道为什么我在eclipse没有找到sdk manager,不过目录下的这个也可以用。

在eclipse的Window -> Preferences -> Android里面可以指定SDK路径,不过要注意,如果eclipse没有安装ADT,那么找不到Android选项(亲测发现,0_0),指定路径,点击Apply,这时会在空白处出现当前SDK中包含的可用的API版本。

我的SDK路径是:F:\TDDOWNLOAD\adt\adt-bundle-windows-x86_64-20131030\sdk


4)、下载NDK, 下载地址和上面的SDK一样,在左侧的标签的DownLoad处选择NDK就可以,注意下载和自己电脑对应的就行。

下载解压后,在eclipse的Window ->Preferences-> Android->NDK里面可以设置NDK路径

我的是这样的:F:\TDDOWNLOAD\android-ndk-r9c-windows-x86_64\android-ndk-r9c


——————————————————————

基础环境已经齐全,下面测试项目

——————————————————————


以cocos2d-x-2.2.2版本下自带的testCpp为例


打开eclipse,选择File->New->Project->Android->Android Project from Existing Code


点击下一步,在Root Direcory里选择cocos2d-x-2.2.2\cocos2d-x-2.2.2\samples\Cpp\TestCpp\proj.android(在2.2.2版本下,testCpp是这个路径,找个别的测试项目也可以,或者新建一个项目,找到路径下的proj.android),点击Finish导入


成功导入项目之后,还要做一些配置,在这之前,先说一个非常重要的东西: NDK_MODULE_PATH,这个据说是较新版本的cocos2d-x才加入的内容,到底是从哪个版本我就不知道了,至少在2.2.2版本已经开始使用了。

就我的理解,NDK_MODULE_PATH这个变量定义了查找cocos2d-x一些功能类的路径,比如说声音,等等。

这个变量配置错误,项目是无法正常编译运行的。

http://blog.sina.com.cn/s/blog_4057ab62010197z8.html,这个地址讲述了一些关于NDK_MODULE_PATH的内容,讲的很详细,我也是看了之后才逐渐了解这个变量,建议一定看一下。


好了,开始配置:

1)、右键项目->properties打开对话框,在左侧选项中,Android标签里可以选择使用的SDK版本,使用sdk manager下载的其他版本这里都会有,因为我的手机版本只是2.3的,所以我下载了2.3的sdk,话说过程是及其的漫长。

2)、选择Builders->New,在Main标签的Browse file system里选择ndk路径下的ndk-build.cmd所在路径,我的是这样的:

F:\TDDOWNLOAD\android-ndk-r9c-windows-x86_64\android-ndk-r9c\ndk-build.cmd

选择Browse workspace,选择项目路径,就是testCpp(打开的项目)

在Refresh标签下


,然后通过Specify Resources->testCpp(打开的项目)->jni,点击完成


在Build Options里选择


,同样在这里的Specify Resources选择testCpp(打开的项目)->jni,点击完成


然后点击Apply->OK


3)、在c/c++ build选项里,设置



NDK_ROOT,是在系统中配置的一个环境变量 F:\TDDOWNLOAD\android-ndk-r9c-windows-x86_64\android-ndk-r9c,其实在上面的window->preferences->android->ndk里面已经设置了一个路径,不过如果不设置系统变量,貌似就不能这么写了。


4)、点击Java Build Path,在source标签中选择link sources,在弹出的对话框中,选择到F:\cocos2d-x-2.2.2\cocos2d-x-2.2.2\cocos2dx\platform\android\java\src,这个目录,也可以把这个目录下的文件复制到项目路径的src目录下。


这里面是刚才那个路径下的文件,看一下项目路径src文件夹下->(项目名)->项目名称.java文件


这里面,有导入刚才那个路径下的文件。所以,没有刚才那些文件,这里是会报错的。


5)、将 NDK 目录下的 /sources/cxx-stl/gnu-libstdc++/libs/armeabi/ 目录下的 libgnustl_static.a 文件复制到项目文件夹下的 obj/local/armeabi/libgnustl_static.a 目录下,这个是我看其他的一些教程里面说的,不过不知道为什么,我新建立的项目并没有obj文件夹。是在我build,然后点击了 run as android application之后才出现的,至于为啥,还不知道。反正我把这个文件复制进去了。


6)、在我用的sdk中,默认的 build tools是19,但是据说是用19编译成较低版本的程序时,会出现Unable to execute dex: java.nio.BufferOverflowException错误,我也确实遇到了,解决办法,就是右键选中项目中的,从Build path里面remove掉。听说也可以把 build tools 19删除,然后下载个较低版本的,我没这样试,不知道可不可以。不过如果没有出现这个错误,这里就无视吧。


现在,右键选中项目,Run As->Android Application可以开始运行了,不过这里要说一下,在我电脑上,apk刚刚打包好的是哦胡只有0kb大小,过了一会才改变了大小到80M左右(我的是testCpp),可能打包过程比较慢吧。建议稍微等一下。


还有,因为testCpp里面包含的东西比较多,所以Build的过程很慢..........



PS:

Eclipse是可以运行模拟器,但是据说安卓模拟器不支持openGL什么的,可能从某个版本的cocos2d-x开始就不能在模拟器上运行了,所以我才想在真机上测试,所以我才将SDK的api版本改到了2.3,但是具体是不是这样,我还不确定。


刚刚学习cocos2d-x,如果有错误,欢迎指正


0 0
原创粉丝点击