Cocos2d 架构简单分析

本文介绍了Cocos2d在Android平台上的实现方式,分析了从UI适配层到游戏逻辑层的具体结构,并解释了为什么需要使用NDK进行C++文件的编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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

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


游戏逻辑层需要用户编写,看用户如何设计游戏,他使用了 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 core 中的个 lib 提供的2D游戏若干基本类

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


结论:

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


另外有一个项目就是用 Java 来编写所有 cocos2d 的类, 这个项目还在开发中

http://code.google.com/p/cocos2d-android/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值