现在的位置: 首页 > 综合 > 正文

Hello, cocos2dx World!

2013年01月06日 ⁄ 综合 ⁄ 共 8935字 ⁄ 字号 评论关闭

         第一天学习android用cocos2dx引擎,记录下学习过程,并转载下来遇到困难时查询的文章,感谢原作者们!

        

让我们开始吧。你可以从下面的目录直接跳到你所用的平台。

第一章 —— 如何在多种平台上创建新的cocos2d-x项目

1 从win32开始

1.2在VisualStudio上安装Wizard

1.3 创建一个新的cocos2d-win32 项目

1.4 编译并运行

1.5 运气差的人可以参考这里

2 从沃Phone开始

3 从iPhone开始

4 从Android开始

4.1 Windows下

4.1.1 创建项目

4.1.2 编译原生代码

4.1.3 把项目移入eclipse

4.1.4 编译java代码并运行

4.2 Linux下



1.从win32 开始

Cocos2d-win32 接口已在WinXp+VistualStudio2008/2010下测试正常。但在vista/win7下,我无法保证它运行良好。如果你根据教程,还是无法正常运行cocos2d-win32接口,这里有篇参考。

1.2在VisualStudio上安装Wizard

在你下载并解压完源码包之后,找到cocos2d-x 文件夹,点击“build-win32.bat”来编译整个项目,之后点击“install-templates-msvc.bat”来安装wizard。bat脚本会自动对应vs2008或者2010。更多细节,请参考这篇文档Coscos2d-x Application Wizard for Visual Studio 用户指导

1.3 创建一个新的cocos2d-win32 项目

现在你可以通过VS2008打开cocos2d-x/cocos2d-win32.vs2008.sln,我们可以从这看到库文件。

右键点击“Solution ’cocos2d-win32.vc2008’”,之后选择“Add->New Project”,

选择“cocos2d-x -> cocos2d-win32 Application”,在Name一栏写上“Cocos2dxSimpleGame”,并使用默认的路径设置。

备注:在win32&沃Phone接口,游戏的路径必须放下cocos2d-x的根目录下。

点击“OK->Next”,不勾选 Box2D,因为Cocos2dSimpleGame不使用物理系统。请确保“SimpleAudioEngine in CocosDenshion”是勾选的,之后点“Finished”。

1.4 编译并运行

现在我们可以看到“Cocos2dSimpleGame.win32”已经创建好了,我们的游戏现在依赖于libcocos2d & libCocosDenshion这两个库。

好,编译并运行,通常情况下,如果你不是运气那么差的话,你会看到下面这张图。

1.5 运气差的人可以参考这里

或许有些人不能成功地在win32上运行这个HelloWorld模板,这是因为cocos2d-win32接口基于PowerVR OpenGL ES 1.1 SDK for PC Emulation(Windows vista/XP 版)

http://www.imgtec.com/PowerVR/insider/sdkdownloads/index.asp#GLES1b

我们把PowerVR的库集成到了路径

cocos2d-x-root/cocos2dx/platform/win32/third_party/libraries里

因此:

 对于win7用户:PowerVR还没有发布Windows 7的接口。但你依然可以试一试。许多论坛里的win7 用户成功运行过这个例子。

 对于winxp/vista 用户:如果HelloWorld因为任何glXXX或者eglXXX函数而崩溃,请更新你的显卡驱动,去NVIDIA/ATI/INTEL的网站找到最新的驱动。

 对于运气差的用户:你可以动手在Xcode里创建cocos2d-x 项目,或者去教堂/庙里拜拜找点运气:P

2.从沃Phone开始

如果你是一位沃Phone开发者,以上的win32步骤同样适用于你。仅有3处不同:

1. 你必须把cocos2d-x-root设置到D:/Work7目录里,沃Phone有严格的app 路径要求。

2. 请用VS2008打开D:/Work7/cocos2d-x/cocos2d-wophone.sln,而不是cocos2d-win32

3. 请在“Add New Project”对话框里选择“cocos2d-wophone application”,如下所示

而cocos2d-wophone的 HelloWorld编译运行后的结果如下

3.从iPhone开始

我们从0.8.2版开始就有了对应Xcode的模板。你可以像创建cocos2d-iphone项目那样简单地来创建cocos2d-x项目。首先,找到cocos2d-x的根目录,之后在mac的shell下运行install-templates.sh

./install-templates-xcode.sh -u -f

你可以在这里选择你的Xcode版本,xcode3或是xcode4。

安装完成之后,你就可以打开Xcode,之后点击“Creat a new Xcode project”。你会看到这个对话框

选择“cocos2d-x application”,之后点“choose”,输入项目的名称。Xcode将会帮你创建好cocos2d-x的项目。

请注意,iOS的cocos2d-x项目可以在任何你想要的地方被创建。Xcode里的wizard会复制所有cocos2dx、CocosDenshion等库到项目的文件夹里。这和VisualStudio上win32&沃Phone的wizard不同。

好了,之后编译运行,你会看到如下的HelloWorld效果图

4.从Android开始

Ndk中Android的项目有两部分,一个对应的是java,另一个对应c++。我们将会运行creat-android-project.bat(或者在linux下运行create-android-project.sh)来创建Android ndk项目。

4.1 Windows下

4.1.1创建项目

“create-android-project.bat”在cocos2d-x的根目录里。你应该根据你的环境做一些改动。

为了适应我的配置环境,我在create-android-project.bat里改动一些设置。

 set_CYGBIN=C:\cygwin\bin

Cygwin bin的路径

 set_ANDROIDTOOLS=D:\android\android-sdk-windows\tools

android sdk tools的路径

 set_NDKROOT=D:\android\android-ndk-r5b

ndk的根目录

现在你就可以运行“create-android-project.bat”来创建一个android项目:

进入cocos2d-x的根目录,双击create-android-project.bat,输入项目的名称以及target id,如下所示

在版本0.8.2之后,你可能会被要求键入package的路径,路径的格式为:org.cocos2dx.Cocos2dxSimpleGame。

target id 根据不同的环境有不同的区别,你应当确保输入有效的target id。目前cocos2dx支持2.1-update1和Android2.2,其他版本还未测试过。

4.1.2编译原生代码

现在你可以在cocos2d-x的根目录下看到一个命名为“Cocos2dxSimpleGame”的文件夹,运行你的cygwin,之后进去“Cocos2dxSimpleGame/android”,之后运行“build_native.sh”。

4.1.3把项目移入到eclipse

运行你的eclipse,点击 File->New->Project->Android Project,之后像下面这样移入项目

4.1.4编译java代码并运行

右击项目并选“Build Project”,之后右击项目并选“Run As”->“Android Application”。之后你就会看到如下结果:

 

转载请注明出处:http://blog.csdn.net/maojudong/article/details/7261986

2012-10-21更新:

时代在进步,苹果发布了IOS6和iphone5,不知道苹果过些天的iPad mini 怎么样,cocos2dx也更新到2.0.3  ,社区也在不断的进步,由于这一段时间来工作特别忙,cocos2dx的日志有就没有更新了,今天到社区下载了最新的2dx版本进行了简单的测试,还好基本都通过


XP32位系统 + JDK1.6 + 

NDKR8b + 2dx (0.11/0.12/.13/2.0/2.0.1/2.0.2/2.0.3) 测试通过

NDKR8 + 2dx (0.11/0.12/.13/2.0/2.0.1/2.0.2/2.0.3)
  测试通过


全部编译通过,没有出现网友说的问题

说下注意点:
1.  java编译器使用1.6.x (不建议用1.5.x/1.7.x)

2.  有些安装了cygwin的,请暂时从PATH中屏蔽掉关于cygwin的内容

3.  jni目录中要有Application.mk文件,且其中一定要有APP_PLATFORM :=android-5 (2dx 的 2.0.x系列至少为android-5,         1.x至少为android-4)Eclipse编译则不需要这一步,不过建议还是写上好些


4.  2dx的0.10版本,ndk_build.cmd 不能完成编译,需要安装cygwin才能编译(或者linux/macos 编译),更早期的版本就没有测试了,相信做项目也很少有人用0.10以前的版本了


5.  Eclipse编译环境中 2.0.3/2.0.2 /2.0.1 需要先导入\cocos2dx\platform\android\java项目,然后用Eclipse编译出一个 jar文件,最后将这个jar文件导入到 tests 项目中的libs就可完成编译(应一个网友的要求才这么说的,感谢他,是我的表述不清楚)


2.0.2 /2.0.1 中\cocos2dx\platform\android\java导入后,源代码不是src目录,却是src_common 目录,所以可以修改.classpath   文件,或是更改src_common到src是最简单的方法


6. 不要用模拟器进行调试,模拟器的速度慢,导致加载时间长,最后黑屏,时间长了,就导致ANR(应用程序无响应),建议买个android 平板或是手机吧(现在很便宜,299元钱的android平板到处都有卖(我的公司就有卖),1000元钱可以买到双核甚至4核的手机了)

如果非要用模拟器进行调试,请将AVD模拟器中添加 GPU emulation 属性,并将值设置为yes就可以了

经过2个小时的测试发现 只有4.0.3 和4.1.2 两个版本的模拟器显示正常,且模拟器需要开启GPU emulation 功能。

我的测试平台:

2dx 2.0.3 版本+ MAC 10.8.2 + jdk1.6 + eclipse3.7.2 

模拟器开启GPU功能 

2.2   模拟器很卡,且异常退出,无法操作           结论:不通过,不能用于调试2dx      

2.3.1  模拟器很卡,且异常退出,无法操作         结论:不通过,不能用于调试2dx      

2.3.3   模拟器很卡,且异常退出,无法操作        结论:不通过,不能用于调试2dx    

3.X      未测试

4.0      模拟器不能开启,,且异常退出,无法操作        结论:不通过,不能用于调试2dx    

4.0.3     2dx可以运行,可以调试

4.1.2     2dx运行正常,可以调试

模拟器未开启GPU功能 

2.2       黑屏            结论:不通过,不能用于调试2dx      

2.3.1    异常退出     结论:不通过,不能用于调试2dx

2.3.3    异常退出     结论:不通过,不能用于调试2dx

3.X      未测试

4.0       异常退出     结论:不通过,不能用于调试2dx 

4.0.3    异常退出     结论:不通过,不能用于调试2dx

4.1.2    异常退出     结论:不通过,不能用于调试2dx

2dx中的论坛也有讨论这个

http://cocos2d-x.org/boards/6/topics/12563

这位兄弟的文章也不错

http://www.raywenderlich.com/12065/how-to-create-a-simple-android-game

原因是 

Android 4.0.3 r2 才 增加GPU支持和CPU加速

 


祝你好运!


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


2012-04-17更新:

cocos2d-x 0.13版本有些变动,需要用我改写的 ndk-build.cmd  文件进行编译且方法有2种,直接用NKD,脱离Eclipse编译库,第2还是用Eclipse 辅助编译库


批处理下载地址(内有使用说明)


http://download.csdn.net/detail/maojudong/4233381

脱离繁重的Cygwin.NDK编译脱离Cygwin

1. 请将文件放到cocos2d-1.0.1-x-0.13.0-beta目录下面
2. 打开build_android_ndk_tests.bat 文件 修改set NDK_ROOT=D:\Work7\android-ndk-r7c到你的NDK实际路径即可
3. jni/Application.mk  文件中加入APP_PLATFORM :=android-5   
4. 在jni目录中添加双击此批处理即可编译库文件

注1:0.13版本的cocosw2d-x 搭配 Eclipse 也可以使用这个批处理,不要使用NDK自带的ndk-build.cmd
注2:此批处理可以脱离Eclipse,只用NDK自带的编译器即可,这里只用来编译库,如果要打包到APK还是需要Eclipse的,将刚刚编译的库导入即可

上面讲解了两种方法,自行选择

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
build_android_ndk.bat  需要在开始 --> 运行  CMD 后 运行的批处理
方法有2:

方法1: 运行build_android_ndk.bat -C tests/test.android/jni
方法2: 
#cd tests/test.android/jni
#..\..\..\build_android_ndk.bat  

效果是一样的

0.11 0.12 0.13 版本都测试通过


脱离繁重的Cygwin(但是使用cocoss2d-x下的create-android-project.bat创建还是需要Cygwin,你可以尝试更改这个文件,让其不依赖Cygwin,我相信能够做到,只是时间问题 ,呵呵)



版本:

Windows XP3

JDK1.6

Eclipse 3.7.1 (需要C++插件CDT)

ADT 16.0.1

NDK7 (或是NDKR7B)

 

cocos2d-1.0.1-x-0.11.0.zip(目前最新版)

 

 

 

注意:本教程没有用到minigw +msys,也没有用到cygwin ,如果用到的是NDK R6B 或是以前的版本,则需要安装cygwin(或是minigw +
msys)

 

 

前提条件:假设已经成功安装了JDK + Eclipse + CDT + ADT

 

下面讲解如何在Eclipse中配置NDK ,运行cocos2d-x 自带的 test 工程

 

目录:

Step1. 下载 android-ndk-r7-windows.zip并解压

Step2. 下载cocos2d-x,并解压

Step3.  Eclipse导入cocos2d-x   test项目

Step4.  Eclipse中配置NDK编译环境

Step5. 编译Android 项目

 

 

 

 

安装步骤:

Step1. 下载 android-ndk-r7-windows.zip并解压

 

下载地址:

http://dl.google.com/android/ndk/android-ndk-r7-windows.zip

 

下载完成后,将其解压到电脑的任何目录中,例如:

Step2. 下载cocos2d-x,并解压

 

下载地址:

http://cocos2d-x.googlecode.com/files/cocos2d-1.0.1-x-0.11.0.Zip

 

下载完成后,将其解压到电脑的任何目录中,例如:

Step3. Eclipse导入cocos2d-x   test项目

 

打开Eclipse

依次点击File –  New – Project… AndroidProject

 

选择“Create Project  from existing  Source”

如下图所示,找到test.android  目录


点击Next





 

选择Android 2.1版本,这里直接点击Next ,或是Finish就创建完成了



Step 4. Eclipse中 配置NDK编译环境

 

首先选择TestDemos项目,然后选择菜单中的Project – Properties


选择Bilders – New -- Program



打开后,进行如下的设置:

 

Location:一定要选择ndk-build.cmd 命令

Working Directory:选择TestDemo



 

注意:这里如果是 0.13 之后的版本,请不要用ndk-build.cmd 文件,请用 我写的build_android_ndk_tests.bat (可以到我上面指定的地点下载)

下面选择Refresh  ,配置如下:

越过Envirment ,直接点击Build Options,配置如下图所示:


设置完成后,点击OK

 

Eclipse 会自动的进行编译,耐心等待一会,下面是Eclipse开始自动进行编译的过程

(注意编译过程中有个小问题)



 

编译过程中的问题:



 

解决方法:

将android-ndk-r7\sources\cxx-stl\gnu-libstdc++\libs\armeabi\libgnustl_static.a  文件手动的copy到cocos2d-1.0.1-x-0.11.0\tests\test.android\obj\local\armeabi目录下


以上问题其实是Google NDK R7版本的bug,会在下一版本中更改( NDKR7B版本已经更改了这个bug,所以在NDKR7B上的话就不需要这一步了 )

http://code.google.com/p/android/issues/detail?id=22268



 

copy过去后执行下Project –-clean 动作,系统又会自动的进行编译了,等待一点时间后,库文件就会编译完成



 

 

至此,cocos2d-x库文件就编译完成了

 

 看到网友的反馈,说是找不到assets资源或是黑屏现象


原因是:android下的assets目录没有任何的资源文件,所以需要我们手动的将cocos2d-1.0.1-x-0.11.0\tests\Res  下的资源 复制到  cocos2d-1.0.1-x-0.11.0\tests\test.android\assets  目录中


复制完成后,还需要删除Images\test_image_rgba4444.pvr.gz   文件

 

Step5. 编译Android 项目

连接Android手机

依次点击  Run as…Android Application

运行Helloworld报错

Android NDK: jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path  
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
Android NDK: The following directories were searched:    
Android NDK:         
jni/Android.mk:19: *** Android NDK: Aborting.    .  Stop.

Android.mk引用了一个模块,cocos2dx模块,而NDK没有找到它,所以报了这个错,
之前的版本是直接包含cocos2dx模块的Android.mk的,所以不会报错
而这里使用了import,我们也可以使用之前版本的方法来包含它,但貌似import比之前的方法要更好一些
错误信息提示我们,可以通过设置NDK_MODULE_PATH环境变量,这里很有可能设置错误
一般,一个Android.mk包含一个或多个模块,当你要import cocos2dx模块时,
他会在这个路径下% NDK_MODULE_PATH\cocos2dx寻找Android.mk文件
所以我们编辑我们的Builder

添加NDK_MODULE_PATH变量,注意要写两个路径,用分号分开
D:\SDK\cocos2d-2.0-rc0a-x-2.0;D:\SDK\cocos2d-2.0-rc0a-x-2.0\cocos2dx\platform\third_party\android\prebuilt
因为cocos2dx还import了其他几个module,第二个路径制定了第三方的module,设置完就可以进行编译了

-----

 

 

 

 

 

 

抱歉!评论已关闭.