Cocos2d Android移植手记(二)——cocos2d Android包框架设计

随着android平台的推广和android手机的大量推出,有人预言android将是一个嵌入式的统一平台。果真如此吗?Apple,Microsoft, nokia不会坐视不管的,在想想unix各种混乱的版本,总让人忧心忡忡。不过有google这位大神做东,至少在短期内,android会很稳定,市场会有一席之地。目前,网上很少有使用java开发的开源游戏引擎,大多数情况下都因为java的执行效率问题。不过,既然google官方提供了opengles的支持,为什么不试下呢?至少程序员可以不担心硬件层的差异了。

“万事开头难”,由于第一次研究游戏引擎,脑子里也是一头雾水,所以模仿cocos2d的结构,初步定义了部分包和类。欢迎大家多提意见。

cocos2d android包框架图:

package

com.moandroid: 包含程序的入口类
Class:
main:派生自ListActivity的入口类,可以浏览tests包中的所有Activity。
R:android资源类
com.moandroid.cocos2d: cocos2d中的常用高级类
Class:
Cocos2d:保存cocos2d的基本信息,例如:当前的版本号,移植的版本号等
com.moandroid.cocos2d.action: cocos2d中用于定义对象行为的类
Class:
Action:所有行为的基类
Animate
BezierBy
Blink
CameraAction
DelayTime
EaseAction
EaseExponentialIn
EaseExponentialOut
EaseIn
EaseInOut
EaseOut
EaseRateAction
EaseSineIn
EaseSineInOut
EaseSineOut
FadeIn
FadeOut
FadeTo
FiniteTimeAction
IntervalAction
JumpBy
JumpTo
MoveBy
MoveTo
OrbitCamera
Repeat
RepeatForever
ReverseTime
RotateBy
RotateTo
ScaleBy
ScaleTo
Sequence
Spawn
Speed
TintTo
TintBy
com.moandroid.cocos2d.cocoslive: cocos2d用于网络通讯的类
Class:
com.moandroid.cocos2d.effects: cocos2d中各种特效类
Class:
com.moandroid.cocos2d.experimental: cocos2d中实验阶段的类
Class:
com.moandroid.cocos2d.external: cocos2d中使用到的其他第三方的库和类
Class:
com.moandroid.cocos2d.image: cocos2d中用于处理图片的类
Class:
com.moandroid.cocos2d.nodes:cocos2d中可用于渲染的数据类型
Class:
CocosNode:所有可渲染对象的基类
Layer:层
Scene:场景
com.moandroid.cocos2d.opengles:cocos2d中支持opengles的视图类
Class:
GLSurfaceView:用于绘制Opengl ES的视图类
com.moandroid.cocos2d.particles: cocos2d中的用于粒子效果的类
Class:
com.moandroid.cocos2d.renderer:cocos2d中的渲染类
Class:
CubeRenderer:渲染cube对象的render
Director
FastDirector
com.moandroid.cocos2d.tests:cocos2d中用于测试的类
Class:
OpenglesTest:测试OpenglES基本框架的类
com.moandroid.cocos2d.types: cocos2d中使用的基本数据类型
Class:
ccColorB:颜色值(字节表示)
ccColorF:颜色值(浮点数表示)
ccGridSize:网格大小
ccPointSprite:点精灵
ccQuad2:2维变换矩阵
ccQuad3:3维变换矩阵
ccRGBB:RGB值(字节表示)
ccTime:时间类
ccVertex3D:顶点

目前工程只完成了部分类的实现,所以类结构可能会不断变化,我会在以后持续更新上面的表格。

下篇文章我将演示如何使用cocos2d android构建一个Opengl ES程序。