一、 基本框架

图层对象(layer Object):定义图层的宽、高、位置、图层的移动和绘制的方法

视图对象:绘制图层对象,响应键盘事件,处理视图线程

Activity:控制游戏流程,如启动游戏、暂停游戏、停止游戏

二、 移植Java ME的游戏APIAndroid

使用Java ME中MIDP2.0的游戏API中的layer, Sprite, LayerManaer和TiledLayer类

(一)MIDP(Mobile Information Device Profile)的介绍

特点:

游戏场景看成一个整体,由各种图层组成

图层可以相互运动

可以简单的检测图层之间的碰撞和交互

在底层的图像类(Graphics和Image等)之上,高层的Game API能联结各种图像的简单操作

包:Javax.microedition.lcdui.game

┣ GameCanvas

Layer

┣ LayerManager

┣ Sprite

TiledLayer

ª GameCanvas类:游戏的容器

继承GameCanvas,构造方法传入一个boolean值,决定是否抑制按键事件(大部分情况下)

获取Graphics对象绘制屏幕:GetGraphics()

绘制缓冲屏幕:flushGraphics()

获取键盘状态:getKeyStates()

Layer类:抽象类,代表游戏中一个可视化元素及其相关属性,如位置、大小、可视与否。。。

LayerManager类:用于管理游戏中的层次,通过分层次的自动绘制实现期望的图像显示效果,容许开发者设置一个可视窗口

Sprite类: 表示一帧或多帧的连续图像(由一个Image对象提供,大小相同),通过控制帧的显示实现动画效果,提供旋转模式和碰撞检测方法

TiledLayer类:显示游戏地图,通过“拼图”的过程,创建大幅图像,如划分为多个cell,分别显示一个Image对象提供的一组图元的某一Tile

(二)MIDP移植到android

  1. 图层类(Layer class)的移植

1) MIDP2.0源码中的Game包的layer, Sprite, LayerManaer和TiledLayer类

2) 将Layer类中的paint方法参数Graphics中的Canvas

3) 在Layer类中加一个绘制图片的方法drawBitmap()

  1. 动画图层类(Sprite class)的移植

该类可以显示几帧动画中的其中一帧,该提供了图片转换盒图层碰撞检测的方法

1) 将Sprite类中的Graphics和Images类改为Canvas和Bitmap类

2) 修改Paint方法,将g.drawRegion方法替换为父类Layer方法中的drawBitmap方法

3) 将doPixelCollision( )中的Bitmap1.getRGB( ), BitMap2.getRGB( )方法注释掉

  1. TiledLayer类的移植

按行列单元格的方式来显示图片

1) 将TiledLayer类中的Graphics和Images类改为Canvas和Bitmaplei

2) 修改Paint方法,将g.drawRegion方法替换为父类Layer方法中的drawBitmap方法

  1. LayerManager类的移植

管理图层,能将多个Layer对象添加,机制维护和显示

1) 将TiledLayer类中的Graphics和Images类改为Canvas和Bitmaplei

2) 修改Paint方法,注释以下代码

Int clipX=g.getClipX( );

Int clipY=g.getClipY( );

Int clipW=g.getClipW( );

Int clipH=g.getClipH( );

g.setClip(ClipX,ClipY,ClipW,ClipH);

3) 在for中添加代码如下

c.restore( );

c.translate(-x+viewX, -y+viewY);

更多相关文章

  1. Android仿iPhone圆角边框
  2. [Android笔记] 关于 AppWidget 动态更新:RemoteViews 更新缓慢&内
  3. android自定义ViewGroup基础
  4. Android(安卓)APK 安装过程及原理详解
  5. android 滑动相关(一) : OnScrollListener
  6. Android(安卓)之 ViewTreeObserver 全面解析
  7. View的基础知识
  8. Android中WebView的使用指南:
  9. Android(安卓)的HashMap介绍

随机推荐

  1. Android(安卓)获取手机的IMEI等设备信息
  2. android 自定义对话框 背景透明
  3. Android之checkbox使用
  4. android 获取进程名字
  5. android菜鸟
  6. android使用Intent操作拨打电话和发送短
  7. Android怎么从设置相册中的照片作背景(刚
  8. android中读取短信
  9. 第五节cocos2dx的jni部分
  10. Android(安卓)实现Activity后台运行