因为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,就可以解压,并获得源文件.
分享到:
相关推荐
本文将详细介绍如何将J2ME中的Layer、LayerManager、Sprite和TiledLayer这四个关键概念移植到Android平台,并探讨在Android环境下如何实现这些功能。 1. Layer(层) 在J2ME中,Layer是一个抽象的概念,它代表了...
在这个项目中,开发者可能接触到了一些核心的JavaME技术,如图形绘制、精灵(sprite)处理、地图层(tiledLayer)管理以及进度条(Gauge)的使用。下面将详细解释这些知识点。 1. **JavaME(Java Micro Edition)**...
本文将详细介绍如何在Android环境中使用J2ME MIDP 2.0的Game API,特别是四个关键工具类:Layer、LayerManager、Sprite和TiledLayer。 **Layer** 类在MIDP 2.0中是一个基础组件,它代表了一个可绘制的平面层。Layer...
Android汽车大战游戏中移植Java ME Game API中Layer, LayerManager,TiledLayer,Sprite类,实现移植。 系统功能: 1. 汽车发射出的子弹在游戏中飞行 2. 子弹击中子弹、障碍物或是汽车显示爆炸 3. 增强能力的宝贝——...
游戏包包含五个核心类:GameCanvas、Layer、Sprite、TiledLayer和LayerManager。 1. **GameCanvas**:扩展了Canvas类,提供了离屏缓冲区的功能。所有渲染操作首先在这个缓冲区上完成,然后再显示到设备屏幕上。这有...
MIDP 2.0中的游戏API包含在`javax.microedition.lcdui.game`包中,主要包括五个核心类:`GameCanvas`、`Layer`、`Sprite`、`TiledLayer`和`LayerManager`。这些类提供了创建具有各种功能的游戏所需的基础框架。 ###...
例如,GameCanvas作为游戏的主画布,LayerManager管理多个Layer,包括Sprite和TiledLayer,而Sprite则负责显示和动画效果。通过深入理解和实践这些API,开发者可以构建出具有流畅动画、分层显示和高效性能的2D游戏。...
Layer是一个抽象类,代表游戏中的可视化元素,如Sprite和TiledLayer都是它的子类。Layer提供了位置、大小和可视性的基本属性,但出于优化考虑,不能直接创建Layer的子类。LayerManager管理多个Layer,实现分层次的...
MIDP2.0引入了一套专门的游戏API,它包括`GameCanvas`、`Layer`、`Sprite`、`TiledLayer`和`LayerManager`等关键组件。这些组件共同构成了游戏开发的基础框架,使得开发者能够更高效地构建复杂的游戏环境。 - **...
`Sprite`允许仅使用特定帧或通过播放帧序列创建动画,同时支持检测与其他`Sprite`或`TiledLayer`的碰撞。 - **TiledLayer**:类似于`Sprite`,但更多地用于创建背景或广阔区域,如赛道。它由一个单元格网格构成,每...
- **TiledLayer**:一种特殊的 `Layer` 类型,由多个 `Sprite` 组成,适用于地图等重复纹理的绘制。 #### 四、按键状态检测 在 MIDP 2.0 中,Game API 支持更精细的按键状态检测,不再仅仅是简单的按下或释放事件,...
import javax.microedition.lcdui.game.LayerManager; import javax.microedition.lcdui.game.Sprite; import javax.microedition.lcdui.game.TiledLayer; public class WalkGameCanvas_18 extends GameCanvas ...
例如,`Image`类用于创建和加载图像资源,而`LayerManager`和`TiledLayer`类则用于管理游戏中的多层图像,实现复杂的动画效果。 #### 2. 游戏对象管理 通过`UserSprite`和`EnemySprite`类来表示游戏中的玩家和敌人...
通过对GameCanvas、LayerManager、TiledLayer、Layer和Sprite等核心组件的理解与应用,开发者可以轻松构建出具有丰富视觉效果和良好交互体验的游戏。虽然随着技术的发展,J2ME已经不再流行,但对于想要深入了解Java...
- 创建一个`TiledLayer`对象。 - 为每个瓷砖分配一个图像资源。 - 可以通过填充方法来设置每个瓷砖的位置和属性。 ###### 5.2.3 填充Tiled Layer单元格 填充Tiled Layer的单元格通常涉及到指定每个单元格中显示的...
1. **LayerManager** `layerManager`: 用于管理游戏层,确保子弹能够正确地绘制在屏幕上的适当位置。 2. **坐标** `x`, `y`: 子弹的当前位置。 3. **速度** `speed`: 控制子弹移动的速度,数值越小速度越快。 4. **...
`Layer`类表示一个绘图层,而`Sprite`则是在层上绘制的动态元素。这些类提供了游戏开发所需的底层支持。 ##### 3.3 LayerManager 类 `LayerManager`类用于管理多个`Layer`对象。它提供了一种方便的方式来控制不同...
相比之下,`LayerManager`类用于管理多个图层,`Sprite`类则负责单个图像元素的显示和动画控制,而`RecordStore`类用于数据存储,并非图形处理。 2. **数据库操作**:在JavaME中,`Statement`类的方法被用于执行SQL...