public class GameMap
int frameWidth, frameHight;// 单元图片的宽、高
private Image img;
Image[] imgs;// 切割后的图片数组
private int mapArray[][];
public BombardMap(Image image, int frameWidth, int frameHight, int[][] array) {
this.img = image;
this.frameWidth = frameWidth;
this.frameHight = frameHight;
mapArray = array;
}
// 切割矩形图对图片切割放到数组里!
protected void image() {
imgs = new Image[frameWidth * frameHight];
for (int i = 0; i < frameHight; i++) {
for (int j = 0; j < frameWidth; j++) {
imgs[i * Width + j] = Image.createImage(img, j * frameWidth,
i*frameHight, 16, 16, 0);
}
}
}
public void drawBack(Graphics g) {// 画背景或地图
for (int j = 0; j < 13; j++) { // 判断当前屏幕列上显示的块(X)
for (int i = 0; i < 11; i++) { // 判断当前屏幕行上显示的块(Y)
if (mapArray[j][i] > 0) { // 判断绘制处是否空白
g.drawImage(imgs[mapArray[j][i] - 1], i * frameWidth,
j* frameHight, Graphics.TOP|Graphics.LEFT);
}
}
}
}
}
上面的类GameMap.java经过简单的修改,可以直接应用在自己的游戏中。
注意:在函数drawBac()中,13和11要根据自己游戏背景的大小进行相应的修改。