📄 gamescreen.java
字号:
{
drawString(gw.st.get("HI-SCORES"), scrW >> 1, 6, 17, 0x2d0c01);
drawString(gw.st.get("Loading..."), scrW >> 1, 39, 17, 0x2d0c01);
repaint();
serviceRepaints();
hiscoresConnection();
drawCanva();
}
byte byte0 = 10;
byte byte1 = 14;
byte byte2 = 39;
char c = '\211';
drawString(gw.st.get("HI-SCORES"), scrW >> 1, 6, 17, 0x2d0c01);
int i = 39;
if(localhiscores || gw.gm.gameover && noconnection)
{
if(gw.gm.gameover && noconnection)
gw.hiScores.printScores(winners, winscores);
for(int j = 0; j < winners.length; j++)
{
drawString(winners[j], byte2, i, 20, 0x2d0c01);
drawString(winscores[j], c, i, 24, 0x2d0c01);
i += byte1;
}
} else
if(noconnection)
drawString(gw.st.get("Connection is not available"), scrW >> 1, i, 17, 0x2d0c01);
else
if(emptytable)
{
drawString(gw.st.get("Empty"), scrW >> 1, i, 17, 0x2d0c01);
} else
{
for(int k = 0; k < winners.length; k++)
{
drawString(winnumbers[k], byte2, i, 24, 0x2d0c01);
drawString(winners[k], byte2 + 6, i, 20, 0x2d0c01);
drawString(winscores[k], c, i, 24, 0x2d0c01);
i += byte1;
}
}
drawButton(1, xbuttons, ybuttons);
mode = 8;
repaint();
serviceRepaints();
}
public void drawMap()
{
if(needmap)
{
int i = scrW >> 1;
char c = '\344';
drawCanva();
drawString(gw.st.get("Map"), scrW >> 1, 6, 17, 0x2d0c01);
for(int i2 = 0; i2 < 32; i2++)
{
int j1 = 32 - i2;
int k1 = 32 + i2;
for(int j2 = j1; j2 < k1; j2++)
if((gw.lv.flags[i2][j2] & 1) == 0)
{
scrGr.setColor(clMap[gw.lv.map[i2][j2]]);
int j = i + (j2 - i2 << 1);
int l = c - (j2 + i2 << 1);
scrGr.fillRect(j, l, 3, 3);
}
int l1 = 64 - i2 - 1;
for(int k2 = j1; k2 < k1; k2++)
if((gw.lv.flags[l1][k2] & 1) == 0)
{
scrGr.setColor(clMap[gw.lv.map[l1][k2]]);
int k = i + (k2 - l1 << 1);
int i1 = c - (k2 + l1 << 1);
scrGr.fillRect(k, i1, 3, 3);
}
}
drawButton(1, xbuttons, ybuttons);
needmap = false;
}
}
public void drawMenu()
{
int i = scrW >> 1;
menulen = menu[menumode].length;
int j = scrH - menulen * fnsh >> 1;
drawCanva();
scrGr.setFont(fns);
drawString(gw.st.get(menutitle), scrW >> 1, 6, 17, 0x2d0c01);
if(menumode == 0 && newGame && !hassave)
menui0 = 1;
else
menui0 = 0;
for(int k = menui0; k < menulen; k++)
{
String s;
if(menumode != 1 || k != 2)
s = gw.st.get(menu[menumode][k]);
else
if(gw.st.locint == 0)
s = "\u0420\u0443\u0441\u0441\u043A\u0438\u0439";
else
s = "English";
if(k == selecteditem)
{
scrGr.setClip(i - 42, j, 84, 14);
scrGr.drawImage(menubar, i, j - 14, 17);
scrGr.setFont(fnsb);
drawString(s, i, j + 1, 17, anicolors[gw.gt.cnt]);
} else
{
scrGr.setClip(i - 42, j, 84, 14);
scrGr.drawImage(menubar, i, j, 17);
scrGr.setFont(fns);
drawString(s, i, j + 1, 17, 0x2d0c01);
}
if(menumode == 1)
{
scrGr.setClip(i - 42 - 14, j, 14, 14);
if(k == 0)
{
if(sound)
scrGr.drawImage(check, i - 42 - 14 - 14, j, 20);
else
scrGr.drawImage(check, i - 42 - 14, j, 20);
} else
if(k == 1)
{
if(vibration)
scrGr.drawImage(check, i - 42 - 14 - 14, j, 20);
else
scrGr.drawImage(check, i - 42 - 14, j, 20);
} else
{
scrGr.drawImage(check, i - 42 - 14, j, 20);
}
}
j += fnsh;
}
drawButton(1, xbuttons, ybuttons);
if(menumode != 0)
drawButton(2, scrW - xbuttons - 16, ybuttons);
scrGr.setFont(fns);
repaint();
serviceRepaints();
}
public void drawPeople(int i, int j, int k)
{
int l = 0;
int i1 = 0;
byte byte0 = 0;
j -= 6;
k -= 2;
scrGr.setClip(j + deltaOff, k + deltaOff, 12, 12);
if(gw.gm.people[i][9] == 5)
{
i1 = 4;
if(gw.gm.people[i][8] == 0)
l = gw.gt.phase;
else
l = 2 + gw.gt.phase;
} else
{
l = gw.gm.people[i][7];
if(l == 4)
l = 0;
if(gw.gm.people[i][2] > 0)
byte0 = 2;
i1 = byte0 + (gw.gt.cnt & 1);
}
scrGr.drawImage(people, (j - 12 * l) + deltaOff, (k - 12 * i1) + deltaOff, 20);
}
public void drawPlayerName()
{
drawCanva();
drawString(gw.st.get("Enter Name"), scrW >> 1, 6, 17, 0x2d0c01);
int j = 39;
drawString(gw.st.get("You have ") + gw.gm.scores + gw.st.get(" scores."), scrW >> 1, j, 17, 0x2d0c01);
j += fnsh << 1;
drawString(gw.st.get("Enter your name:"), scrW >> 1, j, 17, 0x2d0c01);
j += fnsh << 1;
int i = (scrW >> 1) - 42;
scrGr.setClip(i, j, 84, 14);
scrGr.drawImage(menubar, i, j - 14, 20);
i += 2;
j++;
drawString(playerName, i, j, 20, 0x2d0c01);
int k = fns.substringWidth(playerName, 0, cursorpos);
int l;
if(cursorpos >= playerName.length())
l = fns.charWidth('O');
else
l = fns.charWidth(playerName.charAt(cursorpos));
scrGr.setColor(anicolors[gw.gt.cnt]);
scrGr.fillRect(i + k, j + 11, l, 2);
drawButton(1, xbuttons, ybuttons);
mode = 9;
repaint();
serviceRepaints();
}
public void drawResIcon(int i, int j, int k)
{
if(i > 0)
{
i--;
scrGr.setClip(j, k, 32, 32);
scrGr.drawImage(resourcesbig, j - 32 * (i & 3), k - 32 * (i >> 2), 20);
}
}
public void drawResource(int i, int j, int k, int l)
{
try
{
l -= 20;
int i1 = k - 8;
int j1 = k + 2;
int k1 = l - 2;
scrGr.setClip(i1 + deltaOff, l + deltaOff, 8, 8);
scrGr.drawImage(resources, (i1 - 8 * i) + deltaOff, l + deltaOff, 20);
scrGr.setClip(j1 + deltaOff, k1 + deltaOff, 32, 16);
scrGr.setFont(fns);
scrGr.setColor(0);
scrGr.drawString(String.valueOf(j), j1 + 1 + deltaOff, k1 + 1 + deltaOff, 20);
scrGr.setColor(0xffffff);
scrGr.drawString(String.valueOf(j), j1 + deltaOff, k1 + deltaOff, 20);
}
catch(Exception exception) { }
}
public void drawSplash()
{
drawCanva();
drawString(spTitle, scrW >> 1, 6, 17, 0x2d0c01);
scrGr.drawImage(anisplash[aniseq[splashPhase] - 1], 24, 54, 20);
drawButton(1, xbuttons, ybuttons);
scrGr.setClip(24, 158, 128, 14);
drawString(spText, xTicker, 158, 20, 0x2d0c01);
repaint();
serviceRepaints();
}
public void drawStock()
{
drawCanva();
scrGr.setColor(0x2d0c01);
scrGr.setFont(fns);
drawString(gw.st.get("Warehouse"), scrW >> 1, 6, 17, 0x2d0c01);
int i = ((scrW >> 1) - 32 - 32) + 8;
int k = 4 + stockicony + 32 + 8;
int j = k;
for(int l = 1; l <= gw.gm.resNum; l++)
{
if(l == 9)
{
i += 64;
j = k;
}
if(j > 42 && j < 136)
{
drawResIcon(l, i, j);
scrGr.setClip(0, 0, scrW, scrH);
drawString(String.valueOf(gw.gm.stock[l]), i + 40, j + 14, 20, 0x2d0c01);
}
j += 40;
}
if(stockicony < 0)
drawButton(5, (scrW >> 1) - 18, ybuttons);
else
drawButton(0, (scrW >> 1) - 18, ybuttons);
if(stockicony > -(400 - scrH))
drawButton(6, scrW >> 1, ybuttons);
else
drawButton(0, scrW >> 1, ybuttons);
drawButton(1, xbuttons, ybuttons);
}
public void drawString(String s, int i, int j, int k, int l)
{
j -= 2;
scrGr.setColor(0xc49942);
scrGr.drawString(s, i + 1, j, k);
scrGr.setColor(l);
scrGr.drawString(s, i, j, k);
}
public void drawSymbol(int i, int j, int k, boolean flag)
{
int i1 = 0;
byte byte0;
int l;
byte byte1;
Image image;
if(i <= 40)
{
byte0 = 32;
image = land;
l = 0;
byte1 = 21;
} else
{
if(i > 60)
{
i1 = i - 60;
i = 55;
}
byte0 = 44;
image = objects;
i -= 40;
l = animation[i];
byte1 = 33;
}
j -= 22;
k -= byte1;
scrGr.setClip(j + deltaOff, k + deltaOff, 44, byte0);
scrGr.drawImage(image, (j - 44 * (i - 1 & 3)) + deltaOff, (k - byte0 * (i - 1 >> 2)) + deltaOff, 20);
if(i1 > 0)
scrGr.drawImage(anim, (j - 44 * (i1 - 1)) + deltaOff, (k - byte0 * 3) + deltaOff, 20);
if(l > 0)
{
if(flag)
l += gw.gt.phase;
scrGr.drawImage(anim, (j - 44 * (l - 1 & 3)) + deltaOff, (k - byte0 * (l - 1 >> 2)) + deltaOff, 20);
}
}
public void drawTicker()
{
xsTicker -= dticker;
if(xsTicker < endsTicker)
{
sticker = false;
} else
{
scrGr.setClip(lsticker + deltaOff, (scrH - 15) + deltaOff, 172 - lsticker, 16);
scrGr.setColor(0);
scrGr.drawString(stText, xsTicker + deltaOff, scrH + deltaOff, 36);
scrGr.setColor(0xffffff);
scrGr.drawString(stText, (xsTicker - 1) + deltaOff, (scrH - 1) + deltaOff, 36);
}
}
public void drawUragan()
{
if(uraganvisible)
{
cursori = uragani;
cursorj = uraganj;
int i = getVX(uraganx, uragany);
int j = getVY(uraganx, uragany);
int k = gw.gt.cnt & 3;
i -= 44;
j -= 72;
scrGr.setClip(i, j, 88, 88);
scrGr.drawImage(uraganImg, i - 88 * (k & 1), j - 88 * (k >> 1), 20);
}
}
public void drawlogo()
{
scrGr.setClip(0, 0, scrW, scrH);
scrGr.setColor(0);
scrGr.fillRect(0, 0, scrW, scrH);
scrGr.drawImage(logo, scrW >> 1, (scrH >> 1) + logoy, 3);
repaint();
serviceRepaints();
}
public void endEarthQuake()
{
earthQuake = false;
deltaScrX = 4;
deltaScrY = 4;
gw.gm.calculateBuilds();
}
public void enterPlayerName()
{
mode = 6;
if(playerName.length() > 0 && (localhiscores || gw.gm.gameover) && addscores && gw.gm.scores > 0)
gw.hiScores.addScore(gw.gm.scores, playerName);
drawHiScores();
}
public void free()
{
land = null;
objects = null;
resources = null;
anim = null;
uraganImg = null;
buttons = null;
resourcesbig = null;
people = null;
canvatop = null;
canvaleft = null;
canvaright = null;
canvabottom = null;
gc();
}
public void gc()
{
System.gc();
try
{
Thread.sleep(30L);
}
catch(Exception exception) { }
}
public int getVX(int i, int j)
{
return centerx + (i - cursorx - (j - cursory));
}
public int getVY(int i, int j)
{
return centery - (((i - cursorx) + j) - cursory >> 1);
}
public void help()
{
helpy = 0;
mode = 5;
}
public void hiscoresConnection()
{
int i = 0;
HttpConnection httpconnection = null;
DataInputStream datainputstream = null;
String s1 = gw.getAppProperty("HiScoresURL");
for(int l1 = 0; l1 < winners.length; l1++)
{
winnumbers[l1] = "";
winners[l1] = "";
winscores[l1] = "";
}
noconnection = true;
if(s1 == null)
s1 = "http://62.85.77.5/jds/hiscores.php?gid=751291&did=241873";
if(!addscores || gw.gs.playerName.length() == 0 || gw.gm.scores == 0)
s1 = s1 + "&userid=" + gw.gm.userid;
else
s1 = s1 + "&userid=" + gw.gm.userid + "&scores=" + gw.gm.scores + "&name=" + gw.gs.playerName;
try
{
httpconnection = (HttpConnection)Connector.open(s1);
datainputstream = httpconnection.openDataInputStream();
int i2 = (int)httpconnection.getLength();
if(i2 > 0)
{
byte abyte0[] = new byte[i2];
datainputstream.read(abyte0);
String s2 = new String(abyte0);
int l = 0;
int j2 = 0;
do
{
int i1 = s2.indexOf(")", l);
int j1 = s2.indexOf("=", l);
int k1 = s2.indexOf("\n", l);
int j = Integer.parseInt(s2.substring(l, i1));
String s = s2.substring(i1 + 1, j1);
int k = Integer.parseInt(s2.substring(j1 + 1, k1));
winnumbers[j2] = String.valueOf(j) + ".";
winners[j2] = s;
winscores[j2] = String.valueOf(k);
l = k1 + 1;
i++;
j2++;
} while(l < i2 && s2.charAt(l) != 0);
emptytable = false;
} else
{
emptytable = true;
}
noconnection = false;
}
catch(Exception exception)
{
noconnection = true;
}
try
{
if(datainputstream != null)
datainputstream.close();
if(httpconnection != null)
httpconnection.close();
}
catch(Exception exception1) { }
}
public void keyPressed(int i)
{
if(mode != 9)
{
if(i == -6)
{
keycode = i;
return;
}
if(i == -7)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -