因为android没有提供这些,而我要把j2me的一本游戏开发书的实例转成android,所以我觉得把这些写出来,对后面的转化很有帮助,所以我就做了,也发布在自己的博客上。
下面给出这个三个类,我现在实现的方法,源代码,和jar包
AndroidSprite:安卓精灵类
方法:
public AndroidSprite(Bitmap image,int frameWidth,int frameHeight)//构造方法
public int getFrame()//获得当前帧
public int getFrameSequenceLength()//获得当前帧序列的长度
public void nextFrame()//下一帧
public void prevFrame()//上一帧
public void setFrame(int sequenceIndex)//设置要显示的帧
public void setPosition(int positionX,int positionY)//设置精灵显示的位置
public void setFrameSequence(int[] sequence)//设置帧序列
public void move(int x,int y)//移动
public void paint(Canvas canvas,Paint paint)//绘制
public void paint(Canvas canvas,Paint paint,int x,int y)//绘制
AndroidTiledLayer:地图图层类
方法:
public AndroidTiledLayer(int columns,int rows,Bitmap bitmap,int tileWidth,int tileHeight)//构造
public void setCell(int row,int col,int tileIndex)//填充
public int getCellWidth()//获得单个贴图宽度
public int getCellHeight()//获得单个贴图高度
public int getColumns()//获得地图列数
public int getRows()//获得地图行数
public int getMapWidth()//获得地图宽度
public int getMapHeight()//获得地图高度
public void setPosition(int x,int y)//设置显示位置左上角
public void paint(Canvas canvas,Paint paint)//绘制
public void paint(Canvas canvas,Paint paint,int x,int y)//绘制
注意:AndroidSprite和AndroidTiledLayer都继承于AndroidLayer
AndroidLayerManager:图层管理器
方法:
public AndroidLayerManager()//构造函数
//将图层添加到图层管理器中,后添先绘
public void append(AndroidLayer l)
//将图层插入到指定位置,序号越大越早被绘制
public void insert(AndroidLayer l,int index)
// 从图层管理器中删除指定的图层
public void remove(AndroidLayer l)
//根据序号得到对应的图层对象
public AndroidLayer getLayerAt(int index)
//获得大小
public int getSize()
//画图
public void paint(Canvas canvas,Paint paint)
//画图
public void paint(Canvas canvas,Paint paint,int x,int y)
//设置试图窗口大小
public void setViewWindow(int x,int y,int width,int height)//宽度和高度还没有实现。。
Jar包:midp_me.jar
注意:我把源文件也打包到了jar中,将jar包的后缀改为rar,就可以解压,并获得源文件.