?? main.java
字號:
h1 = (s_h - h1) >> 1;
drawString(str,(s_w - getStringWidth(str)) >> 1,h1 + 32);
str = "LOADING";
drawString(str,(s_w - getStringWidth(str)) >> 1,h1);
str = "LEVEL " + (c_lvl + 1);
drawString(str,(s_w - getStringWidth(str)) >> 1,h1 + 16);
}
else
if (state == 60)
{
g.setColor(0x000000);
g.fillRect(0,0,s_w,s_h);
h1 = s_h >> 1;
str = "YOUR PLACE";
drawString(str,(s_w - getStringWidth(str)) >> 1,h1 - 16);
str = "IN SERVER";
drawString(str,(s_w - getStringWidth(str)) >> 1,h1);
str = "IS " + place;
drawString(str,(s_w - getStringWidth(str)) >> 1,h1 + 16);
}
else
if (state == 80)
{
g.setClip(0,0,s_w,s_h);
g.setColor(0x000000);
g.fillRect(0,0,s_w,s_h);
drawString(menuName,(s_w - 84) >> 1,4);
x = getStringWidth(menuName) + ((s_w - 84) >> 1);
g.setClip(0,0,s_w,s_h);
g.setColor(0x604000);
g.fillRect(x + 12 * menuDisp + 10,2,12,12);
buf[0] = editText[0];
if (buf[0] == ' ') buf[0] = '.';
drawChars(0,1,x + 12, 4);
buf[0] = editText[1];
if (buf[0] == ' ') buf[0] = '.';
drawChars(0,1,x + 24, 4);
buf[0] = editText[2];
if (buf[0] == ' ') buf[0] = '.';
drawChars(0,1,x + 36, 4);
for (i = 0; i < 4; i++)
for (j = 0; j < 7; j++)
{
buf[0] = letters.charAt(i * 7 + j);
drawChars(0,1,j * 12 + ((s_w - 84) >> 1), i * 12 + 17);
}
g.setClip(0,0,s_w,s_h);
g.setColor(0xA0B060);
g.drawRect(editX * 12 + ((s_w - 84) >> 1) - 2, editY * 12 + 14,12,12);
g.setColor(0x604000);
g.drawRect(((s_w - 84) >> 1) - 3,13,86,50);
}
else
if (state == 70)
{
g.setColor(0x000000);
g.fillRect(0,0,s_w,s_h);
x = getStringWidth(menuName);
drawString(menuName,(s_w - x) >> 1,6);
if (vMenu != null)
if (vMenu.size() > 0)
{
y = (menuIndex - menuDisp) * menuHeight + menuTop;
h1 = 0;
if (vMenu.size() * menuHeight + menuTop + menuTop < s_h)
{
h1 = ((s_h - vMenu.size() * menuHeight) >> 1) + 8 - menuTop;
}
for (j = (w1 == 0 ? 0 : 1) ; j < 2; j++)
for (i = (j == 0 ? 0 : menuDisp); i < vMenu.size(); i++)
{
if (j == 0 || (i - menuDisp < menuRange))
{
str = (String)(vMenu.elementAt(i));
if (i + 1 < vMenu.size() && isState)
{
str += ":";
str += (((Boolean)vState.elementAt(i)).booleanValue()) ? "ON" : "OFF";
}
if (j == 0)
{
w2 = getStringWidth(str) + (isPointer ? 11 : 0);
if (w2 > w1) w1 = w2;
}
else
{
drawString(str,((s_w - 6 - w1) >> 1) + (isPointer ? 13 : 2),(i - menuDisp) * menuHeight + menuTop + h1);
}
}
}
if (isPointer)
{
g.setClip(((s_w - 6 - w1) >> 1) - 2,y + h1,11,8);
g.drawImage(img[abc_index],((s_w - 6 - w1) >> 1) - 328,y + h1,20);
}
if (vMenu.size() > menuRange)
{
g.setClip(0,0,s_w,s_h);
g.setColor(0x6D3114);
g.fillRect(s_w - 6,menuTop,4,s_h - menuTop - 2);
g.setColor(0xB2A277);
y1 = (s_h - menuTop - 2) * menuDisp / vMenu.size() + menuTop;
y2 = (s_h - menuTop - 2) * menuRange / vMenu.size() + 1;
g.fillRect(s_w - 6,y1,4,y2);
g.setColor(0x6D3114);
g.fillRect(s_w - 6,y1,1,1);
g.fillRect(s_w - 3,y1,1,1);
g.fillRect(s_w - 6,y1 + y2 - 1,1,1);
g.fillRect(s_w - 3,y1 + y2 - 1,1,1);
g.setColor(0x000000);
g.fillRect(s_w - 6,menuTop,1,1);
g.fillRect(s_w - 3,menuTop,1,1);
g.fillRect(s_w - 6,s_h - 3,1,1);
g.fillRect(s_w - 3,s_h - 3,1,1);
}
}
}
else if (initOK)
{
g.setColor(0x000000);
if (s_h > a_h) g.fillRect(0,a_h,s_w,s_h - a_h);
h1 = s_h - a_h;
g.drawImage(ioff, - a_x_d, - a_y_d - (h1 > 0 ? h1 : 0),20);
if (s_w > a_w)
{
g.fillRect(0,0, 1 - disp_x_range,s_h);
g.fillRect(s_w + disp_x_range - 1,0, 1 - disp_x_range,s_h);
}
for (i = 0; i < aObj.length; i++)
{
obj = aObj[i];
if (obj.type == C_M)
{
frm = fM[obj.subtype];
if (frm != null)
{
x = obj.mx - (frm.fw >> 1) - a_x_d;
y = obj.my - a_y_d;
g.setClip(x,y,frm.fw,frm.fh);
g.drawImage(img[frm.index],x - frm.next(),y,20);
// frm.draw(x - frm.next(),y);
}
}
if (obj.type == C_Press)
{
x1 = obj.x1 - a_x_d;
y1 = obj.ymin - a_y_d;
y2 = obj.my - a_y_d;
frm = fPr[(obj.subtype << 1) + 1];
if (frm != null)
for (y = obj.ymin, j = y1; y < obj.my; y += frm.h, j += frm.h)
frm.draw(x1 - (frm.w >> 1),j,0,y1,a_w,obj.my - obj.ymin - 6);
frm = fPr[obj.subtype << 1];
if (frm != null)
frm.draw(x1 - (frm.w >> 1),y2 - frm.h,0,y1,a_w,obj.my - obj.ymin);
}
if (obj.type == C_Lift)
{
x1 = obj.x1 - a_x_d;
y1 = obj.ymin - a_y_d;
y2 = obj.my - a_y_d;
frm = fLi[(obj.subtype << 1) + 1];
if (frm != null)
for (y = obj.ymin, j = y1; y < obj.my; y += frm.h, j += frm.h)
frm.draw(x1 - (frm.w >> 1),j,0,y1,a_w,obj.my - obj.ymin - obj.fh);
frm = fLi[obj.subtype << 1];
if (frm != null)
frm.draw(x1 - (frm.w >> 1),y2 - frm.h,0,y1,(a_w > s_w) ? a_w : s_w,obj.my - obj.ymin);
g.setClip(0,0,(a_w > s_w) ? a_w : s_w,(a_h > s_h) ? a_h : s_h);
g.setColor(0x909090);
g.drawLine(x1 - 2,y1,x1 + 2,y1);
g.setColor(0x606090);
g.drawLine(x1 - 1,y1 + 1,x1 + 1,y1 + 1);
}
}
for (i = 0; i < dyn.length; i++)
if (dyn[i] != null)
{
if (isBonus && (dyn[i].class_type == Dynamic.T_A) && dyn[i].visible)
{
dBonus.x = dyn[i].x;
dBonus.y = dyn[i].y;
dBonus.draw();
}
else
// blinking pickaxe
if (isBonus && (dyn[i].class_type == Dynamic.T_B) && (dyn[i].type == 2) && (blink == 0))
{
}
else dyn[i].draw();
}
if (damaged % 2 == 0) man.draw();
for (i = 0; i < vM.size(); i++)
{
msg = (M)vM.elementAt(i);
drawString(msg.text, msg.x - a_x_d, msg.y - a_y_d);
}
}
if ((fPanel0 != null) && (panel_y > -12) &&
((state < 14) || (state == 30) || (state == 31) || (state == 33) ||
(state == 34) || (state == 35) || (state == 20) || (state == 40) || (state == 50)))
{
fPanel0.draw(0,panel_y);
for (i = fPanel0.fw; i < s_w; i += fPanel1.fw)
fPanel1.draw(i,panel_y);
fPanel2.draw(s_w - 1,panel_y);
if (s_w >= 128)
{
buf[0] = '#';
intToString(lifes, 1, 1);
drawChars(0, 2, panel_x + 50, panel_y + 2);
fHead.draw(panel_x + 39,panel_y + 1);
}
if ((s_w >= 128) || (lifeDelay == 0))
{
intToString(scores, 0, 5);
drawChars(0, 5, panel_width + panel_x - 43, panel_y + 2);
}
else
{
fHead.draw(panel_width - 35,panel_y + 1);
buf[0] = '#';
intToString(lifes, 1, 1);
drawChars(0, 2, panel_width - 22, panel_y + 2);
}
if (dumpTime > 0 && midlet.cheats)
{
intToString(memorySize, 0, 8);
drawChars(0, 8, 6, 16);
dumpTime--;
}
intToString((int)currentTime,0,3);
drawChars(0, 3, panel_x + 12, panel_y + 2);
g.setClip(0,panel_y,s_w,s_h);
if ((start_closed_blocks > 0) && (state == 0))
{
g.setColor(0x00a0a0);
g.drawLine(panel_x,panel_y + panel_height - 1,panel_x + panel_width * (start_closed_blocks - closed_blocks) / start_closed_blocks,panel_y + panel_height - 1);
}
}
/*
if (state == 0)
{
g.setColor(0xFFFFFF);
tt2 = System.currentTimeMillis() - tt;
tsum += tt2;
// g.drawString(Long.toString(tt2),10,20,20);
// if (tcnt > 0) g.drawString(Long.toString(tsum / tcnt),10,40,20);
if (tcnt++ > 200) tsum = tcnt = 0;
}
*/
if ((state == 14) || (state == 15) || (state == 20))
{
g.setClip(0,0,s_w,s_h);
g.setColor(0x000000);
g.fillRect(0,a_h - a_y_d,s_w,s_h);
}
if (state == 15)
{
for (i = 0; i < 10; i++)
{
x = rnd(s_w);
y = rnd(s_h);
g.setColor(0x404040 + rnd(0x404040));
g.drawLine(x,y,x,y);
}
}
if ((state == 14) || (state == 15))
{
str = "THE END";
drawString(str,(s_w - getStringWidth(str))>> 1,((s_h - 8) >> 1) + a_h - a_y_d);
}
if (state == 50)
{
str = "GAME OVER";
w1 = getStringWidth(str);
g.setColor(0x000000);
g.setClip(0,0,s_w,s_h);
g.fillRect(((s_w - w1) >> 1) - 10,(s_h >> 1) - 10, w1 + 20, 20);
g.setColor(0xB2A277);
g.drawRect(((s_w - w1) >> 1) - 10,(s_h >> 1) - 10, w1 + 20, 20);
drawString(str,(s_w - w1)>> 1,(s_h >> 1) - 4);
}
if (fire != null) fire.draw();
}
catch(Exception ex)
{
}
}
int its_x,its_i,its_n;
void intToString(int n,int disp,int digits)
{
for (its_x = n, its_i = digits - 1; its_i >= 0; its_i --, its_x /= 10)
buf[disp + its_i] = (char)(its_x % 10 + '0');
}
Thread t = null;
long tstart = 0,tcur = 0;
int blink,blinkDelay;
public void run()
{
t = Thread.currentThread();
if (mainThread != null); // dummy code
while (t == mainThread)
{
try
{
t.sleep(10);
}
catch(Exception iex){}
tcur = System.currentTimeMillis();
t.yield();
if (vibra_delay > 0)
{
if (--vibra_delay <= 0)
{
if (vendor == 3)
try
{
// Class.forName("com.vodafone.v10.system.device.DeviceControl");
com.vodafone.v10.system.device.DeviceControl.getDefaultDeviceControl().setDeviceActive(com.vodafone.v10.system.device.DeviceControl.VIBRATION,false);
vibra_delay = 0;
}
catch(Exception ex){}
}
}
if ((tcur - tstart > 50) && running)
{
tstart = tcur;
tcur = System.currentTimeMillis() - bonusTime;
if (isBonus)
if (tcur > 8000)
{
// switch off bonus mode
isBonus = false;
for (i = 0; i < dyn.length; i++)
if (dyn[i] != null)
if ((dyn[i].class_type == Dynamic.T_B) && (dyn[i].type == 2) && dyn[i].inUse)
{
dyn[i].restart();
dyn[i].visible = false;
man.inUse = false;
}
}
else
{
blinkDelay = 8 - (int)(tcur / 1000);
blink--;
if (blink < 0) blink = blinkDelay;
}
try
{
if (damaged > 0) damaged--;
if (lifeDelay > 0) lifeDelay--;
switch(state)
{
case 101:
LOGO_TIME --;
if ((LOGO_TIME <= 0) || (action != -15))
{
midlet.isFirst = 1;
midlet.menuLevel = 0;
midlet.paused = false;
midlet.storeScores();
}
break;
case 100:
LOGO_TIME -= 50;
if ((LOGO_TIME <= 0) || (action != -15))
{
action = -15;
fLogo = null;
fLogo2 = null;
state = 99;
init();
}
break;
case 99:
LOGO_TIME -= 50;
if ((LOGO_TIME <= 0) || (action != -15))
{
action = -15;
fLogo = null;
initOK = false;
midlet.startMenu();
}
break;
case 98:
LOGO_TIME --;
if ((LOGO_TIME <= 0) || (action != -15))
{
state = 0;
init();
}
break;
case 70:
updateMenu();
break;
case 80:
updateEditor();
break;
case 60:
LOGO_TIME -= 50;
if ((LOGO_TIME <= 0) || (action != -15))
{
midlet.menuLevel = 2;
midlet.returnMenu();
action = -15;
}
break;
case 0:
update();
if ((!isKeyPressed) && (action != -15))
{
action = -15;
man.stop();
}
currentTime = levelTime - (int)((System.currentTimeMillis() - startTime) / 1000);
if (currentTime <= 0)
{
lifes = 0;
state = 3;
}
if (closed_blocks <= 0)
{
addMessage(man.x,man.y,"100");
scores += 100;
state = 1;
}
break;
case 1:
updateMsg();
scores += 10;
currentTime -= 10;
if (currentTime < 0)
{
currentTime = 0;
state = 2;
}
break;
case 2:
if (nextLevel != null)
{
man.a2 = 0;
state = 20;
}
else state = 14;
break;
case 3:
beep(1);
lifeDelay = 20;
lifes--;
man.visible = false;
fire.visible = true;
fire.a2 = 1;
fire.x = ma
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -