游戏API 使用了MIDP 的低级图形类接口(Graphics,Image等等)。整个game 包仅有5个Class,其结构关系如图:
GameCanvas
这个类是Canvas类的子类,为游戏提供了基本的"屏幕"功能。除了从Canvas 继承下来的方法外,这个类还提供了游戏专用的功能,如查询当前游戏键状态的能力,同步图像输出;这些功能简化了游戏开发并提高了性能。
这个类与Canvas 类相比有两个优点:1。它拥有屏幕缓冲,2。它可以直接得到设备键盘的物理状态。
Layer
Layer 类代表游戏中的一个可视化元素,例如Sprite 或TiledLayer 是它的子类;这个抽象类搭好了层(Layer)的基本框架并提供了一些基本的属性,如位置,大小,可视与否。出于优化的考虑,不允许直接产生Layer 的子类(不能包外继承)。
LayerManager
对于有着许多Layer 的游戏而言,LayerManager 通过实现分层次的自动渲染,从而简化了游戏开发。它允许开发者设置一个可视窗口(View Window),表示用户在游戏中可见的窗口;LayerManager 自动渲染游戏中的Layer,从而实现期望的视图效果。
LayerManager负责管理Layer对象,并且按照指定的顺序画他们。
Sprite
Sprite 又称“精灵”,也是一种Layer,可以显示一帧或多帧的连续图像。但所有的帧都是相同大小的,并且由一个Image 对象提供。Sprite 通过循环显示每一帧,可以实现任意顺序的动画;Sprite 类还提供了许多变换(翻转和旋转)模式和碰撞检测方法,能大大简化游戏逻辑的实现。
TiledLayer
TiledLayer 又称“砖块”,这个类允许开发者在不必使用非常大的Image对象的情况下创建一个大的图像内容。TiledLayer 有许多单元格构成,每个单元格能显示由一个单一Image 对象提供的一组贴图中的某一个贴图。单元格也能被动画贴图填充,动画贴图的内容能非常迅速地变化;这个功能对于动画显示非常大的一组单元格非常有用,例如一个充满水的动态区域。
TiledLayer更多的被用来创建背景,比如赛道或者其他更大的区域.