?? 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 + -