⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tileunit.java

📁 JAVAME手机RPG游戏设计最终演示代码
💻 JAVA
字号:

import javax.microedition.lcdui.*;
import java.io.*;
public class TileUnit {
  private byte m_UnitFrameNum; //帧数量
  private UnitFrame[] m_UnitFrame; //帧信息
  private int iUnitFrameIndex = 0; //显示帧的索引
  public TileUnit() {

  }

  /**
   * 载入建筑单元数据
   * @param din DataInputStream
   */
  public void loadTileData(DataInputStream din) {
    try {
      din.readInt(); //偏移量X
      din.readInt(); //偏移量Y
      din.readByte(); //动画播放类型
      m_UnitFrameNum = din.readByte(); //载入帧数量
      int moveNum = din.readByte(); //运动数量
      m_UnitFrame = new UnitFrame[m_UnitFrameNum]; //建立帧数组
      for (int i = 0; i < m_UnitFrame.length; i++) {
        m_UnitFrame[i] = new UnitFrame(); //创建帧
        m_UnitFrame[i].loadUnitFrameData(din); //载入帧
      }
      for (int i = 0; i < moveNum; i++) { //本书中用不到
        din.readInt(); //读取运动数据
        din.readInt();
        din.readInt();
      }
    }
    catch (IOException ex) {
      ex.printStackTrace();
    }
  }

  /**
   * 绘制一个建筑单元
   * @param g Graphics
   * @param x int 该单元要绘制到的屏幕坐标点
   * @param y int 屏幕坐标点
   */
  public void drawTileUnit(Graphics g, int x, int y) {
    if (m_UnitFrame[iUnitFrameIndex].drawUnitFrame(g, x, y)) { //绘制帧
      iUnitFrameIndex++; //切换帧
      if (iUnitFrameIndex > m_UnitFrameNum - 1) { //当取到最后一帧时
        iUnitFrameIndex = 0; //重新从第1帧开始
      }
    }
  }

  public int[] getHitRect() { //返回当前使用的帧的碰撞矩形
    return m_UnitFrame[iUnitFrameIndex]. //iUnitFrameIndex为当前帧ID
        getM_iHitRect();
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -