毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于J2ME WTK的2D手机游戏开发(英文文献翻译) 第7页

更新时间:2010-3-11:  来源:毕业论文
基于J2ME WTK的2D手机游戏开发
1、TRANS_NONE: 没有进行转动和翻转;
2、TRANS_ROT90: 90度转动;
3、TRANS_ROT180: 180度转动;
4、TRANS_ROT270: 270度转动;
5、TRANS_MIRROR: 左右翻转;
6、TRANS_MIRROR_ROT90: 左右翻转后90度转动;
7、TRANS_MIRROR_ROT180: 左右翻转后180度转动;
8、TRANS_MIRROR_ROT270: 左右翻转后270度转动。
如设定精灵左右翻转如下:
this.setTransform(Sprite.TRANS_MIRROR);// 左右翻转
4.2.4地图的画法
在地图类Map中继承了TiledLayer类,该类的作用是用于构建游戏地图。游戏中除了精灵的活动之外,还需要有背景地图,使得精灵在地图上走动形成逼真的环境效果,因此MIDP2.0提供我们用于构建游戏地图的TiledLayer类,我们能使用TiledLayer容易的构建形象美观的各种地图背景。用TiledLayer的重要方法如下:
    1、TiledLayer是一个将tiled平铺于格子状排列着的cell中,通过使用图片填满整站地图中的cell从而形成一张游戏地图的类。如图4-4和4-5。
         
图4-4 分散的地图块                         图4-5 拼好的地图
2、Map的构造方法为:
public Map(int cols, int row, Image img, int tiledWidth, int tiledHeight,
   int level, int mapIndex) {
  super(cols, row, img, tiledWidth, tiledHeight);
 }
    其中参数cols、row指定了图层中cell横向和纵向的个数,image指定了在图层中使用的图片Image对象,tiledWidth和tiledHeight则分别指定了image中小图片的尺寸,level、mapIndex第几关的第几层图片。
image对象跟Sprite中一样,由多张不同形态的小图片组成,从构造方法中可以看出,TiledLayer类在构造出自身大小的同时,能对image进行分割。
 3、画地图
    构建出地图大小跟分割图片后,将分割后的图片组装到地图中的各个cell中的过程这里叫贴砖。使用的方法是setCell(int col,int row,int tiledIndex),就是在地图的第col列和第row行的地方贴上第tiledIndex张图片,当全部cell被贴完则形成了我们想得到的游戏地图。通常情况下,地图中的cells我们用二文数组来存储排列情况,并通过一个二文循环来完成贴砖任务。但由于游戏中的地图都是很大的,如果直接定义数组,就会占用很大空间,所以把数组转成txt文本格式,让程序去里面读取。如下:
public void readMap(int level, int mapIndex) {//画地图
  byte[][] map = null;//定义map二文数组
  int no = 1;
  String fileName = "/map/map" + level + "_" + mapIndex + ".txt";
  map = readFile(fileName);
  for (int i = 0; i < AIN.length; i++) {
   AIN[i] = this.createAnimatedTile(no++);//标记新创建的动态贴//图,索引号总是负数,第一次的为-1,第二次为-2... 静态贴图可以通//过调用setAnimatedTile(int, int)方法来改变.
  }
  for (int i = 0; i < map.length; i++) {
   for (int j = 0; j < map[0].length; j++) {
    setCell(j, i, map[i][j]);//贴地图
   }
  }
 }

public byte[][] readFile(String URL) {//读取地图txt文本数组方法,URL
//为传入的txt文本
  InputStream is = this.getClass().getResourceAsStream(URL);//输入流
  DataInputStream data1 = new DataInputStream(is);//开辟新的数据空间
  short hang = 0;
  short lie = 0;
  try {
   hang = data1.readShort();
   lie = data1.readShort();
   data = new byte[hang][lie];
   for (int i = 0; i < hang; i++) {
    for (int j = 0; j < lie; j++) {
     data[i][j] = data1.readByte();
    }
   }
   is.close();//关闭输入流
  } catch (Exception e) {
  }
  return data;//返回比特型数据data
 }
public void getAnimation() {// 将要改变的图片赋上固定值
  for (int i = 0; i < data.length; i++) {
   for (int j = 0; j < data[0].length; j++) {
    switch (data[i][j]) {
    case 55:
     data[i][j] = -1;
     break;
    case 56:
     data[i][j] = -2;
     break;
    case 65:
     data[i][j] = -3;
     break;
    case 66:
     data[i][j] = -4;
     break;
    case 75:
     data[i][j] = -5;
     break;
    case 76:
     data[i][j] = -6;
     break;
    }
   }
  }
 }
 public void update() {
  aniCounter = ++aniCounter % 3;
  for (int i = 0; i < map_num.length; i++) {
   this.setAnimatedTile(AIN[i], map_num[i] + aniCounter * 2);
//使AIN[i]中图片动态变化

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于J2ME WTK的2D手机游戏开发(英文文献翻译) 第7页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。