📄 gamescreen.java
字号:
hjumptype = 1;
hjumpidx = 0;
hjumpdir = -1;
hstatus = 3;
break;
}
setHarryAnim(hstatus);
}
private void setHarryAnim(byte byte0)
{
hanimindex = 0;
hanimstep = 0;
if(hanimstart[byte0][hanimindex] == -1)
{
hanimstep = 1;
hanimdata = hanims[byte0];
if(hanims[byte0][hanimindex] == -1)
{
hanimstep = 2;
hanimdata = hanimend[byte0];
}
} else
{
hanimdata = hanimstart[byte0];
}
}
public void setEffect(int l, int i1, int j1)
{
if(effalive)
{
return;
} else
{
efftype = (byte)l;
effx = i1;
effy = j1;
effcount = 0;
effalive = true;
return;
}
}
public void addExp(int l)
{
exp += l;
expcount = 5;
exppoint = l;
if(grade == 7)
return;
if(exp > MAX_EXP[grade])
{
grade++;
hlife = maxhlife;
killMon(-1, (byte)-1);
ItemEff = 10;
g_status = 101;
rm.play(2, false);
}
}
public void transObj(int l, int i1, int j1)
{
switch(getRandom(10 - grade))
{
case 0: // '\0'
case 4: // '\004'
case 8: // '\b'
popObj((byte)0, l, i1 - 10, j1);
break;
case 1: // '\001'
case 5: // '\005'
case 9: // '\t'
popMon((byte)6, l, i1);
break;
case 2: // '\002'
case 6: // '\006'
popObj((byte)3, l, i1 - 17, j1);
break;
case 3: // '\003'
case 7: // '\007'
popObj((byte)1, l, i1 - 17, j1);
break;
}
}
public void changeMon(int l, int i1, int j1)
{
if(getPercent(30 + grade * 10))
transObj(l, i1 - 10, j1);
else
popMon((byte)getRandom(5), l, i1 - 10);
}
public void useItem(byte byte0)
{
hSlot[byte0]--;
ItemEff = byte0;
g_status = 101;
}
public void setGetinfo(int l)
{
getitem = (byte)l;
getcount = 10;
}
public void keyPressed(int l)
{
keycode = l;
label0:
switch(g_status)
{
case 5: // '\005'
case 6: // '\006'
case 7: // '\007'
case 8: // '\b'
default:
break;
case 10: // '\n'
switch(keycode)
{
case -7:
case 12: // '\f'
case 35: // '#'
g_status = pregame;
break;
}
break;
case 9: // '\t'
if(ingameEndmsg)
{
switch(l)
{
case 49: // '1'
gc.end();
break;
case 50: // '2'
ingameEndmsg = false;
break;
}
return;
}
switch(l)
{
case 0: // '\0'
case 3: // '\003'
case 4: // '\004'
case 7: // '\007'
case 9: // '\t'
case 10: // '\n'
case 12: // '\f'
case 13: // '\r'
case 14: // '\016'
case 15: // '\017'
case 16: // '\020'
case 17: // '\021'
case 18: // '\022'
case 19: // '\023'
case 20: // '\024'
case 21: // '\025'
case 22: // '\026'
case 23: // '\027'
case 24: // '\030'
case 25: // '\031'
case 26: // '\032'
case 27: // '\033'
case 28: // '\034'
case 29: // '\035'
case 30: // '\036'
case 31: // '\037'
case 32: // ' '
case 33: // '!'
case 34: // '"'
case 35: // '#'
case 36: // '$'
case 37: // '%'
case 38: // '&'
case 39: // '\''
case 40: // '('
case 41: // ')'
case 43: // '+'
case 44: // ','
case 45: // '-'
case 46: // '.'
case 47: // '/'
case 48: // '0'
default:
break;
case -1:
case 1: // '\001'
mindex--;
if(mindex < 0)
mindex = 4;
rm.play(4, false);
break label0;
case -2:
case 6: // '\006'
mindex++;
if(mindex > 4)
mindex = 0;
rm.play(4, false);
break label0;
case -6:
case 11: // '\013'
case 42: // '*'
case 49: // '1'
g_status = pregame;
break label0;
case 51: // '3'
gc.setSoundMax();
mindex = 2;
break label0;
case 52: // '4'
gc.menu();
break label0;
case 50: // '2'
gc.setGameStatus((byte)17, (byte)2);
break label0;
case 53: // '5'
mindex = 4;
ingameEndmsg = true;
break label0;
case -3:
case 2: // '\002'
if(mindex == 2)
gc.setSoundMin();
break label0;
case -4:
case 5: // '\005'
if(mindex == 2)
gc.setSoundMax();
break label0;
case -5:
case 8: // '\b'
if(mindex == 0)
{
g_status = pregame;
break label0;
}
if(mindex == 1)
{
gc.setGameStatus((byte)17, (byte)2);
break label0;
}
if(mindex == 3)
{
gc.setHighscore(score);
gc.menu();
break label0;
}
if(mindex == 2)
gc.setSoundMax();
else
ingameEndmsg = true;
break;
}
break;
case 2: // '\002'
switch(l)
{
case 0: // '\0'
case 3: // '\003'
case 4: // '\004'
case 7: // '\007'
case 9: // '\t'
case 10: // '\n'
case 13: // '\r'
case 14: // '\016'
case 15: // '\017'
case 16: // '\020'
case 17: // '\021'
case 18: // '\022'
case 19: // '\023'
case 20: // '\024'
case 21: // '\025'
case 22: // '\026'
case 23: // '\027'
case 24: // '\030'
case 25: // '\031'
case 26: // '\032'
case 27: // '\033'
case 28: // '\034'
case 29: // '\035'
case 30: // '\036'
case 31: // '\037'
case 32: // ' '
case 33: // '!'
case 34: // '"'
case 36: // '$'
case 37: // '%'
case 38: // '&'
case 39: // '\''
case 40: // '('
case 41: // ')'
case 43: // '+'
case 44: // ','
case 45: // '-'
case 46: // '.'
case 47: // '/'
default:
break;
case -6:
case 11: // '\013'
case 42: // '*'
pregame = g_status;
g_status = 9;
mindex = 0;
GameScreen _tmp = this;
GameCanvas.tmpidx = 0;
break label0;
case -7:
case 12: // '\f'
case 35: // '#'
pregame = g_status;
g_status = 10;
break label0;
case -5:
case 8: // '\b'
case 53: // '5'
if(hobjon)
{
if(puzzleon)
{
if(puzzle[pidx] == objinfo[hobjidx][4])
{
pidx++;
if(pidx < puzzle.length && puzzle[pidx] == -1)
puzzleon = false;
else
if(pidx >= puzzle.length)
puzzleon = false;
if(!puzzleon)
setdoor(2);
} else
{
pidx = 0;
}
return;
}
if(objinfo[hobjidx][0] == 12)
{
gc.setGameStatus((byte)12, (byte)2);
objinfo[hobjidx][4] = 1;
setEffect(0, hx - 5, hy - 10);
} else
{
objinfo[hobjidx][1] = 0;
byte abyte0[][] = rm.getMapData(scrinfo[mapID], (byte)2);
abyte0[objinfo[hobjidx][6]][1] = 0;
setdoor(2);
}
break label0;
}
if(!hshotready)
{
hshotcount = 0;
hshotready = true;
}
hstatus = 4;
setHarryAnim(hstatus);
break label0;
case -3:
case 2: // '\002'
case 52: // '4'
move((byte)2);
break label0;
case -4:
case 5: // '\005'
case 54: // '6'
move((byte)3);
break label0;
case -1:
case 1: // '\001'
case 50: // '2'
move((byte)0);
break label0;
case -2:
case 6: // '\006'
case 56: // '8'
if(getTilenum(hx, hy) == 9)
move((byte)1);
break label0;
case 49: // '1'
move((byte)6);
break label0;
case 51: // '3'
move((byte)5);
break label0;
case 55: // '7'
selectmagic++;
if(selectmagic > maxmagic)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -