📄 tileunit.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 + -