📄 background.java
字号:
import javax.microedition.lcdui.*;
import java.io.*;
public class BackGround
{
private Image[] imgbackground = new Image[4];
private int period;
private boolean isdraw;
//背景坐标描述{地图中X,地图中Y,子图宽,子图高,子图中X,子图中Y}
private int[][][] periodmap={
{ //第一阶段 岛屿阶段
{0,0,59,16,62,61},{59,0,59,16,62,61},{59*2,0,59,16,62,61},{59*3,0,59,16,62,61},{59*4,0,59,16,62,61},
{0,16,59,16,62,61},{59,16,59,16,62,61},{59*2,16,59,16,62,61},{59*3,16,59,16,62,61},{59*4,16,59,16,62,61},
{0,16*2,59,16,62,61},{59,16*2,59,16,62,61},{59*2,16*2,59,16,62,61},{59*3,16*2,59,16,62,61},{59*4,16*2,59,16,62,61},
{0,16*3,59,16,62,61},{59,16*3,59,16,62,61},{59*2,16*3,59,16,62,61},{59*3,16*3,59,16,62,61},{59*4,16*3,59,16,62,61},
{0,16*4,59,16,62,61},{59,16*4,59,16,62,61},{59*2,16*4,59,16,62,61},{59*3,16*4,59,16,62,61},{59*4,16*4,59,16,62,61},
{0,16*5,59,16,62,61},{59,16*5,59,16,62,61},{59*2,16*5,59,16,62,61},{59*3,16*5,59,16,62,61},{59*4,16*5,59,16,62,61},
{0,16*6,59,16,62,61},{59,16*6,59,16,62,61},{59*2,16*6,59,16,62,61},{59*3,16*6,59,16,62,61},{59*4,16*6,59,16,62,61},
{0,16*7,59,16,62,61},{59,16*7,59,16,62,61},{59*2,16*7,59,16,62,61},{59*3,16*7,59,16,62,61},{59*4,16*7,59,16,62,61}, //蓝天
{0,185-61,62,61,0,0},{61,185-61,62,61,0,0},{61*2,185-61,62,61,0,0},{61*3,185-61,62,61,0,0}, //海面
{182,46,58,23,62,37},{62,13,58,23,62,37}, //大云彩
{139,76,46,19,62,15},{0,23,46,19,62,15}, //中云彩
{73,60,32,13,62,0}, //小云彩
{18,153,62,10,62,78},{135,153,62,10,62,78}, //海上冰山
{0,159,24,25,0,61}, //左小岛
{202,157,37,27,24,61} //右小岛
},
{ //第二阶段 岛中海阶段
{0,0,63,72,0,54},{54,0,63,72,0,54},{108,0,63,72,0,54},{162,0,63,72,0,54},{216,0,63,72,0,54}, //浅色海面
{0,72,127,31,0,127},{127,72,127,31,0,127},
{0,103,127,31,0,127},{127,103,127,31,0,127},
{0,134,127,31,0,127},{127,134,127,31,0,127},
{0,165,127,31,0,127},{127,165,127,31,0,127}, //深色海水
{0,148,100,36,0,17},{69,157,100,36,0,17},{168,161,100,36,0,17}, //礁石
{19,124,36,60,67,55},{96,134,36,60,67,55},{176,115,36,60,67,55}, //水草
{160,170,79,14,48,0} //沙子
},
{ //第三阶段 冰山阶段
{0,0,128,185,0,0},{128,0,128,185,0,0}, //冰山
},
{ //第四阶段 地下城阶段
{0,0,63,32,2,0},{63,0,63,32,2,0},{63*2,0,63,32,2,0},{63*3,0,63,32,2,0},
{0,32,63,31,2,34},{63,32,63,31,2,34},{63*2,32,63,31,2,34},{63*3,32,63,31,2,34},
{0,63,63,31,2,34},{63,63,63,31,2,34},{63*2,63,63,31,2,34},{63*3,63,63,31,2,34},
{0,94,63,31,2,34},{63,94,63,31,2,34},{63*2,94,63,31,2,34},{63*3,94,63,31,2,34},
{0,125,63,31,2,34},{63,125,63,31,2,34},{63*2,125,63,31,2,34},{63*3,125,63,31,2,34},
{0,156,63,31,2,34},{63,156,63,31,2,34},{63*2,156,63,31,2,34},{63*3,156,63,31,2,34},
}
};
public BackGround()
{
}
public void paint(Graphics g)
{
period = (TomAdventureCanvas.stage - 1) / 5;
if (imgbackground[period] == null)
{
try
{
imgbackground[period] = Image.createImage("/images/background" +
period + ".png");
}
catch (IOException ex)
{
}
}
for(int i=0;i<periodmap[period].length;i++)
{
isdraw = false;
//判断子图的四个顶点是否在显示区域中 是则绘出子图
if(TomAdventureCanvas.mapx<=periodmap[period][i][0] && periodmap[period][i][0]<=TomAdventureCanvas.mapx+TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy<=periodmap[period][i][1] && periodmap[period][i][1]<=TomAdventureCanvas.mapy+TomAdventureCanvas.viewh)
{
isdraw = true;
}
else if(TomAdventureCanvas.mapx<=periodmap[period][i][0]+periodmap[period][i][2] && periodmap[period][i][0]+periodmap[period][i][2]<=TomAdventureCanvas.mapx+TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy<=periodmap[period][i][1] && periodmap[period][i][1]<=TomAdventureCanvas.mapy+TomAdventureCanvas.viewh)
{
isdraw = true;
}
else if(TomAdventureCanvas.mapx<=periodmap[period][i][0] && periodmap[period][i][0]<=TomAdventureCanvas.mapx+TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy<=periodmap[period][i][1]+periodmap[period][i][3] && periodmap[period][i][1]+periodmap[period][i][3]<=TomAdventureCanvas.mapy+TomAdventureCanvas.viewh)
{
isdraw = true;
}
else if(TomAdventureCanvas.mapx<=periodmap[period][i][0]+periodmap[period][i][2] && periodmap[period][i][0]+periodmap[period][i][2]<=TomAdventureCanvas.mapx+TomAdventureCanvas.vieww
&& TomAdventureCanvas.mapy<=periodmap[period][i][1]+periodmap[period][i][3] && periodmap[period][i][1]+periodmap[period][i][3]<=TomAdventureCanvas.mapy+TomAdventureCanvas.viewh)
{
isdraw = true;
}
//判断显示区域的顶点是否在子图中 是则绘出子图
else if(TomAdventureCanvas.mapx>=periodmap[period][i][0] && TomAdventureCanvas.mapx<=periodmap[period][i][0]+periodmap[period][i][2]
&& TomAdventureCanvas.mapy>=periodmap[period][i][1] && TomAdventureCanvas.mapx<=periodmap[period][i][1]+periodmap[period][i][3])
{
isdraw = true;
}
else if(TomAdventureCanvas.mapx+TomAdventureCanvas.vieww>=periodmap[period][i][0] && TomAdventureCanvas.mapx+TomAdventureCanvas.vieww<=periodmap[period][i][0]+periodmap[period][i][2]
&& TomAdventureCanvas.mapy>=periodmap[period][i][1] && TomAdventureCanvas.mapx<=periodmap[period][i][1]+periodmap[period][i][3])
{
isdraw = true;
}
if(isdraw == true)
{
TomAdventureCanvas.drawClipImage(g,periodmap[period][i][0]-TomAdventureCanvas.mapx,periodmap[period][i][1]-TomAdventureCanvas.mapy,imgbackground[period],periodmap[period][i][4],periodmap[period][i][5],periodmap[period][i][2],periodmap[period][i][3]);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -