Android跑起Cocos2d-x的SimpleGame

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

做开发就要快速建模,而学习一个库就要快速将demo跑起来。

之前百度地图API也是一样,跑起来,看看它的运行状况是什么样的,有了感性认识之后,就更容易理解了。


Cocos2d-x是一个开源的移动游戏框架,源自cocos2d。其跨平台性导致它的包里有太多东西,而我呢,只想Android部分的。对此,我很是纠结。

因为看官网的文档,看的我是云里雾里的,总是找不到从何入手。上面描述的环境搭建复杂至极,真是令人抓狂。

今天看了一篇文章,让我硬着头皮又操练起来,终于成了。

文章名为:android基于cocos2d-x的eclipse开发环境搭建

我的开发环境在Linux下,NDK就不用那么麻烦了,Android应用开发环境也是之前就搭建好的。只等着把Cocos2d-x加进来了。

SimpleGame是其提供的一个sample,路径在cocos2d-x-2.2.1/cocos2d-x-2.2.1/samples/Cpp,下面是各个平台的式例。(题外话:之前我直接找sample,一看里面没有android目录,我就很失望的走开了。)

根据上面的文章,很快的,demo就跑起来了。

具体步骤如下:

1.将libcocos2dx导入到eclipse

        libcocos2dx是android专用的cocos2dx java库,很多有用的类都在此库中,比如例子中要用到的Cocos2dxActivity。

        路径在cocos2d-x-2.2.1/cocos2dx/platform/android/java

2.将samples/Cpp/SimpleGame/proj.android 导入到eclipse

3.复制游戏需要的资源

        cp cocos2d-x-2.2.1/samples/Cpp/SimpleGame/Resources/* cocos2d-x-2.2.1/samples/Cpp/SimpleGame/proj.android/assets/

4.复制cocos2d-x-2.2.1目录下的cocos2dx,CocosDenshion,extensions,external这4个目录到你的NDK的sources目录下,以我的电脑为例,就是/android/android-ndk-r9b/sources

5.最讨厌的,把cocos2dx/platform/third_party/android/prebuilt下的libcurl,libjpeg,libpng,libtiff,libwebp再拷到/android-ndk-r9b/sources下

5.设置NDK Location

        Eclipse中Window--->Preferences--->Android--->NDK,在NDK Location中填上或找到你ndk所在的目录,比如我的:/home/linc/dev/android/android-ndk-r9b

6.设置ndk-build的命令,为 ndk-build NDK_DEBUG=1

      点击项目SimapleGame,Alt+Enter,进入Properties for SimapleGame,点击C/C++ Build,在Build command中添加ndk-build NDK_DEBUG=1,点击Apply。

7.接上面,点开C/C++ Build,点击Tool Chain Editor,将Current builder选成Android Builder,OK。

8.项目SimapleGame右键Build Configurations--->Build all,或者单独此项目时,Project--->Build all。

在Eclipse的Console中打印出编译信息,从这些信息中我们可以看到到底有多少个文件参与了此次编译。

**** Build of configuration Default for project SimpleGame ****/home/linc/dev/android/android-ndk-r9b/ndk-build all Android NDK: WARNING:/home/linc/dev/android/android-ndk-r9b/sources/cocos2dx/Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries    [armeabi] Compile++ thumb: game_shared <= main.cpp[armeabi] Compile++ thumb: game_shared <= AppDelegate.cpp[armeabi] Compile++ thumb: game_shared <= HelloWorldScene.cpp[armeabi] Compile++ thumb: game_shared <= GameOverScene.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCConfiguration.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCScheduler.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCCamera.cpp[armeabi] Compile thumb  : cocos2dx_static <= ccFPSImages.c[armeabi] Compile++ thumb: cocos2dx_static <= CCAction.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionCamera.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionCatmullRom.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionEase.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionGrid.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionGrid3D.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionInstant.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionInterval.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionManager.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionPageTurn3D.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionProgressTimer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionTiledGrid.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCActionTween.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCAtlasNode.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCNode.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCAffineTransform.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCGeometry.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCAutoreleasePool.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCDictionary.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCNS.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCObject.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCSet.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCString.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCZone.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCArray.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCDataVisitor.cpp[armeabi] Compile++ thumb: cocos2dx_static <= cocos2d.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCDirector.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCDrawingPrimitives.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCDrawNode.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCGrabber.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCGrid.cpp[armeabi] Compile thumb  : cocos2dx_static <= aabb.c[armeabi] Compile thumb  : cocos2dx_static <= mat3.c[armeabi] Compile thumb  : cocos2dx_static <= mat4.c[armeabi] Compile thumb  : cocos2dx_static <= neon_matrix_impl.c[armeabi] Compile thumb  : cocos2dx_static <= plane.c[armeabi] Compile thumb  : cocos2dx_static <= quaternion.c/home/linc/dev/android/android-ndk-r9b/sources/cocos2dx/kazmath/src/quaternion.c: In function 'kmQuaternionAssign':/home/linc/dev/android/android-ndk-r9b/sources/cocos2dx/kazmath/src/quaternion.c:478:5: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default][armeabi] Compile thumb  : cocos2dx_static <= ray2.c[armeabi] Compile thumb  : cocos2dx_static <= utility.c[armeabi] Compile thumb  : cocos2dx_static <= vec2.c[armeabi] Compile thumb  : cocos2dx_static <= vec3.c[armeabi] Compile thumb  : cocos2dx_static <= vec4.c/home/linc/dev/android/android-ndk-r9b/sources/cocos2dx/kazmath/src/vec4.c: In function 'kmVec4Assign':/home/linc/dev/android/android-ndk-r9b/sources/cocos2dx/kazmath/src/vec4.c:150:5: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default][armeabi] Compile thumb  : cocos2dx_static <= mat4stack.c[armeabi] Compile thumb  : cocos2dx_static <= matrix.c[armeabi] Compile++ thumb: cocos2dx_static <= CCKeypadDelegate.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCKeypadDispatcher.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCLabelAtlas.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCLabelBMFont.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCLabelTTF.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCLayer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCScene.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTransitionPageTurn.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTransition.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTransitionProgress.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCMenu.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCMenuItem.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCClippingNode.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCMotionStreak.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCProgressTimer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCRenderTexture.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCParticleExamples.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCParticleSystem.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCParticleBatchNode.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCParticleSystemQuad.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCImageCommonWebp.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCSAXParser.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCThread.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCFileUtils.cpp[armeabi] Compile++ thumb: cocos2dx_static <= platform.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCEGLViewProtocol.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCDevice.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCEGLView.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCAccelerometer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCApplication.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCCommon.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCFileUtilsAndroid.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCImage.cpp[armeabi] Compile++ thumb: cocos2dx_static <= Java_org_cocos2dx_lib_Cocos2dxBitmap.cpp[armeabi] Compile++ thumb: cocos2dx_static <= Java_org_cocos2dx_lib_Cocos2dxHelper.cpp[armeabi] Compile++ thumb: cocos2dx_static <= Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= Java_org_cocos2dx_lib_Cocos2dxAccelerometer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= JniHelper.cpp[armeabi] Compile++ thumb: cocos2dx_static <= IMEJni.cpp[armeabi] Compile++ thumb: cocos2dx_static <= TouchesJni.cpp[armeabi] Compile++ thumb: cocos2dx_static <= DPIJni.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCScriptSupport.cpp[armeabi] Compile++ thumb: cocos2dx_static <= ccShaders.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCGLProgram.cpp[armeabi] Compile++ thumb: cocos2dx_static <= ccGLStateCache.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCShaderCache.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCAnimation.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCAnimationCache.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCSprite.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCSpriteBatchNode.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCSpriteFrame.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCSpriteFrameCache.cpp[armeabi] Compile++ thumb: cocos2dx_static <= ccUTF8.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCNotificationCenter.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCProfiling.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCPointExtension.cpp[armeabi] Compile++ thumb: cocos2dx_static <= TransformUtils.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCUserDefaultAndroid.cpp[armeabi] Compile++ thumb: cocos2dx_static <= base64.cpp[armeabi] Compile++ thumb: cocos2dx_static <= ccUtils.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCVertex.cpp[armeabi] Compile++ thumb: cocos2dx_static <= ccCArray.cpp[armeabi] Compile++ thumb: cocos2dx_static <= TGAlib.cpp[armeabi] Compile++ thumb: cocos2dx_static <= tinyxml2.cpp[armeabi] Compile++ thumb: cocos2dx_static <= ZipUtils.cpp[armeabi] Compile++ thumb: cocos2dx_static <= ioapi.cpp[armeabi] Compile++ thumb: cocos2dx_static <= unzip.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCComponent.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCComponentContainer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCIMEDispatcher.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTextFieldTTF.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTexture2D.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTextureAtlas.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTextureCache.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTextureETC.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTexturePVR.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCParallaxNode.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTMXLayer.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTMXObjectGroup.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTMXTiledMap.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTMXXMLParser.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTileMapAtlas.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTouchDispatcher.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTouchHandler.cpp[armeabi] Compile++ thumb: cocos2dx_static <= CCTouch.cpp[armeabi] StaticLibrary  : libcocos2d.a[armeabi] Compile++ thumb: cocosdenshion_static <= SimpleAudioEngine.cpp[armeabi] Compile++ thumb: cocosdenshion_static <= SimpleAudioEngineJni.cpp[armeabi] Compile++ thumb: cocosdenshion_static <= OpenSLEngine.cpp[armeabi] Compile++ thumb: cocosdenshion_static <= SimpleAudioEngineOpenSL.cpp[armeabi] StaticLibrary  : libcocosdenshion.a[armeabi] Compile thumb  : cpufeatures <= cpu-features.c[armeabi] StaticLibrary  : libcpufeatures.a[armeabi] SharedLibrary  : libgame.so[armeabi] Install        : libgame.so => libs/armeabi/libgame.so**** Build Finished ****

下面是我遇到的错误:

错误1.  non-numeric second argument to `wordlist' function 

此问题是NDK开发中常遇到的问题,原因是AndroidManifest.xml没有指定SDK版本。

解决办法是添加:

 <uses-sdk           android:minSdkVersion="9"      android:targetSdkVersion="10"/>
错误2.创建的Android项目提示org.cocos2dx.lib.Cocos2dxActivity

可能是java那个项目没有导入进来吧,报错是找不到这个类。直接搞过来吧,将org.cocos2dx.lib包下的类全拷进来就可以了。

这是因为第一步没有做好,java库没有导入进来的缘故。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/yttyffggh/article/details/84195648