- Android游戏开发案例与关键技术
- 郑萌等编著
- 5字
- 2020-08-27 02:57:08
2.1 图层结构
2.1.1 图层的组成元素
我们将各个图层的游戏元素抽象成某种数据结构,为每一组图层的数据结构分配一个图层ID,并定义或选择合适的数据来组织这些图层。
游戏元素的数据结构在ImageModel.java中定义,包括两个属性:Bitmap类型的元素图像img和Matrix类型的元素处理矩阵matrix;程序在绘制图层的时候,通过ImageModel的对象来获取相应的元素图像、变换矩阵和图像大小,这些方法通常被封装在游戏引擎当中,这里我们使用的游戏引擎是自定义的,因此需要自己定义可绘制接口来封装这些方法。程序中的可绘制接口是Drawable.java,用ImageModel.java来继承。代码清单2-1、2-2分别表示自定义游戏引擎的可绘制接口类Drawable.java和游戏元素实体类ImageModel.java。
代码清单2-1 自定义游戏引擎中的可绘制接口类
public interface Drawable { public Matrix getPicMatrix(); // 获取图片旋转的矩阵表示 public Bitmap getCurrentPic(); // 获取当前动作图片的资源 public int getPicWidth(); // 返回图片的宽度 public int getPicHeight (); // 返回图片的高度 }
代码清单2-2 游戏元素实体类
public class ImageModel implements Drawable{ private Bitmap img; private Matrix matrix = new Matrix(); public void setPicMatrix(Matrix matrix){ this.matrix = matrix; } @Override public Matrix getPicMatrix() { // TODO Auto-generated method stub return matrix; } public void setCurrentPic(Bitmap img){ this.img = img; } @Override public Bitmap getCurrentPic() { // TODO Auto-generated method stub return img; } @Override public int getPicWidth() { // TODO Auto-generated method stub return img.getWidth(); } @Override public int getPicHeight() { // TODO Auto-generated method stub return img.getHeight(); } }