?? main.java
字號:
}
static void createBuffer()
{
out("SB1=" + Runtime.getRuntime().freeMemory());
h1 = a_h > s_h ? a_h : s_h;
ioff = Image.createImage(a_w,h1);
goff = ioff.getGraphics();
if (img[back_index] != null)
for (i = 0; i < a_w; i += 32)
for (j = 0; j < h1; j += 32)
goff.drawImage(img[back_index],i,j,20);
else
{
goff.setColor(0x000000);
goff.fillRect(0,0,a_w,h1);
}
img[back_index] = null;
System.gc();
out("SB2=" + Runtime.getRuntime().freeMemory());
}
static void locateMan()
{
// setting display position to miner
a_x_d = man.x - (s_w >> 1);
a_y_d = man.y - (s_h >> 1);
if (a_x_d < 0) a_x_d = 0;
if (a_y_d < 0) a_y_d = 0;
if (a_x_d >= disp_x_range) a_x_d = disp_x_range;
if (a_y_d >= disp_y_range) a_y_d = disp_y_range;
}
static void drawP()
{
gd = goff;
h1 = s_h - a_h;
if (h1 < 0) h1 = 0;
for (j = obj.x1, x = obj.x1, y = obj.y1 + obj.disp + h1, k = 0;
j < obj.x2;
j += 10, x += 10, y += obj.k, k++)
{
if (obj.blocks[k])
frm = fB[obj.imageIndex];
else
{
if (p_num == -1) start_closed_blocks++;
frm = fB[obj.imageIndex + 3];
}
if (frm != null)
{
if ((p_num == k) || (p_num == -1)) frm.draw(x,y,obj.x1,0,obj.x2 - obj.x1 + 4,a_h + h1);
if (p_num == k)
{
for (i2 = 0; i2 < aObj.length; i2++)
{
obj2 = aObj[i2];
if (obj2.type == C_S)
if ((obj2.x1 - 12 <= x) && (obj2.x1 + 10 >= x) && (obj.ymin - 10 <= obj2.ymin) && (obj.ymax + 10 >= obj2.ymin))
drawS2();
}
}
}
}
if (p_num != -1) drawType(C_Sl2);
}
static void drawS2()
{
gd = goff;
h1 = s_h - a_h;
if (h1 < 0) h1 = 0;
frm = fS[(obj2.subtype << 1) + 1];
if (frm != null)
{
dy = frm.h;
x = obj2.x1 - (frm.w >> 1);
for (y1 = 0, y = obj2.ymin + h1; y1 < 12; y += dy, y1 += dy)
frm.draw(x,y,0,obj2.ymin + h1,a_w,obj2.ymax - obj2.ymin);
}
}
static void drawType(int c_t)
{
gd = goff;
h1 = s_h - a_h;
if (h1 < 0) h1 = 0;
for (i = 0; i < aObj.length; i++)
{
try
{
obj = obj2 = aObj[i];
if ((c_t == C_P) && (obj.type == C_P)) drawP();
else
if ((c_t == C_S) && (obj.type == C_S))
{
frm = fS[obj.subtype << 1];
if (frm != null)
{
dy = frm.h;
x = obj.x1 - (frm.w >> 1);
for (y1 = obj.ymin, y = obj.ymin + h1; y1 < obj.ymax; y += dy, y1 += dy)
frm.draw(x,y,0,obj.ymin + h1 + 2,a_w,obj.ymax - obj.ymin);
}
}
else
if ((c_t == C_S2) && (obj.type == C_S)) drawS2();
else
if ((c_t == C_Wall) && (obj.type == C_Wall))
{
dy = 0;
frm = fW[obj.subtype << 1];
if (frm != null)
{
dy = frm.h;
x = obj.x1 - (frm.w >> 1);
frm.draw(x,obj.ymin + h1,0,obj.ymin + h1,a_w,obj.ymax - obj.ymin);
}
frm = fW[(obj.subtype << 1) + 1];
if (frm != null)
{
x = obj.x1 - (frm.w >> 1);
dy = frm.h;
for (y1 = obj.ymin, y = obj.ymin + h1; y1 < obj.ymax; y += dy, y1 += dy)
frm.draw(x,y,0,obj.ymin + dy + h1,a_w,obj.ymax - obj.ymin - dy);
}
}
else
if ((c_t == C_Sucker) && (obj.type == C_Sucker))
{
x1 = obj.x1;
y1 = obj.y1;
x2 = obj.x2;
y2 = obj.y2;
ym = obj.ymin - 20;
dx = 0;
frm = fSu[obj.subtype * 6];
if (frm != null)
{
for (y = ym; y <= y1; y += frm.h)
frm.draw(x1 - (frm.w >> 1),y + h1,0,ym + h1,a_w,y1 - ym - 3);
for (y = ym; y <= y2; y += frm.h)
frm.draw(x2 - (frm.w >> 1),y + h1,0,ym + h1,a_w,y2 - ym - 3);
}
frm = fSu[obj.subtype * 6 + 3];
if (frm != null)
{
for (x = obj.xmin; x <= obj.xmax; x += frm.w)
frm.draw(x,ym - (frm.h >> 1) + h1,obj.xmin,0,obj.xmax - obj.xmin,a_h + h1);
}
frm = fSu[obj.subtype * 6 + 4];
if (frm != null)
{
frm.draw(obj.xmin - (frm.w >> 1),ym - (frm.h >> 1) + h1,0,0,a_w,a_h + h1);
}
frm = fSu[obj.subtype * 6 + 2];
if (frm != null)
{
frm.draw(obj.xmax - (frm.w >> 1),ym - (frm.h >> 1) + h1,0,0,a_w,a_h + h1);
}
frm = fSu[obj.subtype * 6 + 1];
if (frm != null)
{
frm.draw(obj.x1 - (frm.w >> 1),y1 - frm.h + h1,0,0,a_w,a_h + h1);
}
frm = fSu[obj.subtype * 6 + 5];
if (frm != null)
{
frm.draw(obj.x2 - (frm.w >> 1),y2 - frm.h + h1,0,0,a_w,a_h + h1);
}
}
else
if ((c_t == C_Slope) && (obj.type == C_Slope))
{
x1 = obj.x1 - 7 - (obj.k < 0 ? 13 : 0);
frm = fSl[obj.subtype * 4 + obj.imageIndex];
dx = obj.k * frm.h;
if (frm != null)
for (j = obj.y1, x = x1; j < obj.y2; j += frm.h, x += dx)
{
frm.draw(x,j + h1,0,obj.ymin + h1,a_h,obj.ymax - obj.ymin);
}
}
else
if ((c_t == C_Sl2) && (obj.type == C_Slope))
{
x1 = obj.x1 - 7 - (obj.k < 0 ? 13 : 0);
frm = fSl[obj.subtype * 4 + obj.imageIndex + 3];
dx = obj.k * frm.h;
if (frm != null)
for (j = obj.y1, x = x1; j < obj.y2; j += frm.h, x += dx)
{
frm.draw(x,j + h1,0,obj.ymin + h1,a_h,obj.ymax - obj.ymin);
}
if (obj.k == 0)
{
frm = fSl[obj.subtype * 4 + 6];
// frm.draw(x1,obj.y1,0,obj.ymin + h1,a_h,obj2.ymax - obj.ymin);
}
else frm = fSl[obj.subtype * 4 + obj.imageIndex];
if (frm != null)
{
frm.draw(x1,obj.y1 + h1,0,obj.ymin + h1,a_h,obj2.ymax - obj.ymin);
}
}
else
if ((c_t == C_Teleport) && (obj.type == C_Teleport))
{
frm = fTr[obj.subtype << 1];
if (frm != null)
{
x = obj.x1 - (frm.w >> 1);
y = obj.y1 - (y1 = frm.h) + h1;
frm.draw(x,y,x,y,frm.fw,frm.fh);
frm = fTr[(obj.subtype << 1) + 1];
if (frm != null)
{
x = obj.x1 - (frm.fw >> 1);
y = obj.y1 - y1 + 1 + h1;
goff.setClip(x,y,frm.fw,frm.fh);
goff.drawImage(img[frm.index],x - frm.fw * (num++),y,20);
}
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
void readAnimation(String prefix)
{
if (v1 == null) v1 = new Vector();
for (j = 0; j < 16; j++)
if ((str = gp(prefix + "." + j)) != null) v1.addElement(parse(str));
if (v1.size() > 0)
{
hAnims.put(prefix,v1);
v1 = null;
}
}
static String tmp = null;
static Vector parse(String str)
{
tmp = "";
int l = str.length() - 1;
v2 = new Vector();
for (int i = 0; i <= l; i++)
{
char c = str.charAt(i);
if (i == l) tmp += c;
if ((c == ',') || (i == l))
{
try
{
v2.addElement(new Integer(Integer.parseInt(tmp)));
}
catch(Exception ex){}
tmp = "";
}
else tmp += c;
}
tmp = null;
return v2;
}
void addMessage(int x,int y,String text)
{
msg = new M(x,y,text);
vM.addElement(msg);
}
static boolean isKeyPressed = false;
protected void keyPressed(int keyCode)
{
isKeyPressed = true;
action = keyCode;
switch (action)
{
case -3:// left
case Canvas.KEY_NUM4:
actionMask = 1;
break;
case -4:// right
case Canvas.KEY_NUM6:
actionMask = 2;
break;
case -1:// up
case Canvas.KEY_NUM2:
actionMask = 4;
break;
case -2:// down
case Canvas.KEY_NUM8:
actionMask = 8;
break;
case -5:// jump
case -6:
case Canvas.KEY_NUM5:
actionMask = 16;
break;
case Canvas.KEY_NUM1:// jump
actionMask = 32;
break;
case Canvas.KEY_NUM3:// jump
actionMask = 64;
break;
case Canvas.KEY_NUM7:break;
case Canvas.KEY_NUM9:break;
case -15:break;
case -7:
case Canvas.KEY_STAR:
actionMask = 128;
break;
default:break;
}
}
protected void keyReleased(int keyCode)
{
actionMask = 0;
isKeyPressed = false;
}
void updateMsg()
{
for (i = 0; i < vM.size(); i++)
{
msg = (M)vM.elementAt(i);
msg.update();
y = (a_h - s_h);
if (y > 0) y = 0;
if ((msg.x < 0) || (msg.y < y) || (msg.x > a_w) || (msg.y > a_h))
{
vM.removeElementAt(i);
}
}
}
void update()
{
updateMsg();
for (i = 0; i < aObj.length; i++) aObj[i].update();
// if small by vertical
if (s_h < 80)
if ((System.currentTimeMillis() - panelTime > 3000) || (state != 0))
{
panel_dy = 1;
panelTime = System.currentTimeMillis();
}
if (state == 0)
{
if (s_h < 80)
if (action != -15)
{
panel_dy = -1;
panelTime = System.currentTimeMillis();
}
switch (action)
{
case -3:
case Canvas.KEY_NUM4:
man.shift(-step,0);
break;
case -4:
case Canvas.KEY_NUM6:
man.shift(step,0);
break;
case -1:
case Canvas.KEY_NUM2:
man.shift(0,-step);
break;
case -2:
case Canvas.KEY_NUM8:
man.shift(0,step);
break;
case -5:
case -6:
case Canvas.KEY_NUM5:
man.jump(99);
break;
case Canvas.KEY_NUM1:
man.jump(-step);
break;
case Canvas.KEY_NUM3:
man.jump(step);
break;
case Canvas.KEY_NUM7:break;
case Canvas.KEY_NUM9:break;
case -15:break;
case -7:
case Canvas.KEY_STAR:
action = -15;
leaveTime = System.currentTimeMillis();
if (lifes > 0) midlet.menuLevel = 10;
else
{
midlet.menuLevel = 0;
midlet.paused = false;
}
midlet.returnMenu();
break;
default:break;
}
}
for (i = 0; i < dyn.length; i++)
{
cur = dyn[i];
if (cur != null)
if (cur.visible)
{
dyn[i].update();
cur.alarm = false;
if (cur.class_type == Dynamic.T_B)
if (cur.inUse)
{
if ((!man.inUse) || ((state > 0) && (state < 33)))
{
dyn[i].visible = false;
}
}
if (state == 0)
if ((cur.curObj == man.curObj) && (man.curObj != null))
{
if ((cur.x - man.x >= - 30) && (cur.x - man.x <= 30))
{
cur.alarm = true;
}
if ((cur.x - man.x >= - 10) && (cur.x - man.x <= 10))
{
if ((cur.class_type == Dynamic.T_A) ||
((cur.class_type == Dynamic.T_T) && (cur.type == 0) && (cur.a2 != 1)))
{
if (!cur.inUse)
{
if (lifes > 0 && (damaged == 0) && (!man.inUse || isBonus))
{
if (((cur.class_type == Dynamic.T_A) || (cur.class_type == Dynamic.T_T)) && isBonus)
{
addMessage(man.x,man.y,"25");
scores += 25;
dyn[i] = null;
}
else
{
state = 3;
}
}
if ((man.inUse) && (!isBonus) && (cur.class_type == Dynamic.T_T) && (cur.type != 0)) state = 3;
if ((man.inUse) && (!isBonus) && ((cur.class_type == Dynamic.T_A) ||
((cur.class_type == Dynamic.T_T) && (cur.type == 0))))
{
dyn[i] = null;
man.inUse = false;
addMessage(man.x,man.y,"25");
scores += 25;
fire.a2 = 1;
fire.x = man.x;
fire.y = man.y;
fire.finished = false;
fire.visible = true;
fire.loop = false;
}
}
}
else
if ((cur.class_type == Dynamic.T_T) && (cur.type != 0) && (cur.a2 != 1))
{
if (lifes > 0 && (damaged == 0))
{
state = 3;
}
}
if (cur.class_type == Dynamic.T_B)
{
if (cur.type == 1) // bomb
{
if ((!cur.inUse) && (!man.inUse) && (!isBonus))
{
cur.inUse = true;
man.inUse = true;
}
}
else
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -