Layer是一个抽象类,在游戏里代表了一个元素.TiledLayer继承了Layer,
它有点像精灵类但是主要用来组成背景、道路和屏幕上其它较大的地区。
TiledLayer由许多小格子构成(格柵),这些小格子可以添上各种各样的图像,
从而构成各种各样复杂的背景和游戏场景。
下边的代码说明了如何在J2ME里使用TiledLayer
TiledLayer tiledLayer;
Image bg;
int tileData[][]={
{11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11},
{14,11,14,11,14,11,11,14,11,14,11,11,14,11,14,11,14,14,11,11,
14,11,11,11,14,11,14,11,14,11,14,14,14,14,11,11,11,11,11,11,
11,14,11,11,14,11,11,14,11,11,14,11,11,14,11,14,14,11,14,11,
14,11,14,11,14,11,14,14,11,14},
{13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,
11,13,13,13,13,13,11,11,11,11,11,13,13,13,13,11,11,11,11,11,
13,13,13,13,13,13,13,13,13,13,13, 9, 9, 9, 9, 9,11, 9,11, 9,
9, 9, 9, 9, 9, 9,11,11,11,11},
{9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,17,17,17,
17,17,9,9,9,9,9,17,17,17,17,17,9,9,9,9,11,11,11,11,
11,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,11,14,11,
8,8,9,9,8,8,8,9,11,11,11},
{8,8,8,9,9,8,8,8,8,8,8,14,8,8,8,8,10,10,10,
10,10,8,8,14,8,8,10,10,10,10,10,8,8,8,8,10,9,10,9,10,
8,8,14,8,8,8,8,14,8,8,8,8,8,8,8,8,10,8,10,9,9,
8,8,9,9,8,8,9,11,11 },
{9,9,8,8,8,8,8,9,8,8,8,8,8,8,8,8,10,10,10,
10,10,8,8,8,8,8,10,10,10,10,10,8,8,8,8,10,10,10,10,10,
8,8,9,9,9,9,9,9,8,8,8,8,8,8,8,8,10,8,10,8,8,
8,8,8,8,8,8,8,9,11 },
{16,16,10,16,16,10,10,16,10,10,10,16,10,10,10,10,10,10,10,10,
10,16,16,16,16,16,10,10,10,10,10,16,16,16,16,10,10,10,10,10,
10,10,10,10,10,16,16,16,16,16,16,16,16,16,16,16,10,16,10,16,
16,16,16,16,16,16,16,16,16,16},
{10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
10,10,10,10,10,10,10,10,10,10}
};
public initializeTiledLayer() {
try{
bg=Image.createImage("/bg.png");
}catch(Exception e){}
//初始化
tiledLayer=new TiledLayer(tileData[0].length,
tileData.length, bg, 30, 30);
//设置数据
for(int i=0;i<set.length;i++)
{
for(int j=0;j<tileData[0].length;j++)
{
tiledLayer.setCell(j,i, set[i][j]) ;
}
}
}
void paint(Graphics g)
{
tiledLayer.paint(g);
}