读书人

Cocos2d 架构简略分析

发布时间: 2013-04-09 16:45:09 作者: rapoo

Cocos2d 架构简单分析

以Cocos官方提供 Android 示例程序 org.cocos2dx.Cocos2dxSimpleGame 研究了一下Cocos2d , 下面的我的心得


其结构从上到下共分为 4 层:

最上层是 UI Adaptive Layer 是对不同平台(Android, iOS, etc ) 用户输入和显示进行适配 ( 或者说 porting)

Cocos2d 架构简略分析

游戏逻辑层需要用户编写,看用户如何设计游戏,他使用了 cocos2d 抽象出的对象,比如 scene, sprite 等

通过下面的文件分析,你可以看到 Android 是如何载入游戏逻辑的

在:cocos2d-2.1rc0-x-2.1.2/samples/Cpp/SimpleGame/Classes/HelloWorldScene.cpp 编写游戏逻辑


此文件被 cocos2d-2.1rc0-x-2.1.2/samples/Cpp/SimpleGame/proj.android/jni/Android.mk 编译得到 libgame

libgame 而后被 cocos2d-2.1rc0-x-2.1.2/samples/Cpp/SimpleGame/proj.android/src/org/cocos2dx/simplegame/SimpleGame.java 载入

在 Eclipse 中, 可以看到已经被编译好的 .so 文件, 而几个 Java 文件实际上是 UI Adaptive Layer


Cocos2d 架构简略分析

Cocos2d core 中的个 lib 提供的2D游戏若干基本类

Cocos2d 当然依赖 OS 的基本库,还有就是 opengl, sound 这些native lib


结论:

由于cocos2d 没有提供 java层的游戏基本类(sprite...),因此 game逻辑还必须用 C++ 来编写。这就是为何 cocos2d 的 Android 开发需要安装 NDK, 这是为了编译 C++ 文件。


读书人网 >操作系统

热点推荐