📄 maincanvas.java
字号:
PCDraw(nPoint, 22);
if(nPoint == 22)
{
if(abyte5[byMap_No][nE_Flag[0]] - 1 == 0)
TDL(nE_Flag[0]);
else
if(byMap_No == 2)
TDL(5);
nPoint = 0;
byte abyte4[] = new byte[512 * abyte3[byMap_No]];
byD_Map = new byte[abyte3[byMap_No]][32][32];
try
{
InputStream inputstream = getClass().getResourceAsStream("/M.d");
for(int i = 0; i < byMap_No; i++)
inputstream.skip(512 * abyte3[i]);
inputstream.read(abyte4);
inputstream.close();
for(int i1 = 0; i1 < abyte3[byMap_No]; i1++)
{
for(int j = 0; j < 32; j++)
{
for(int l = 0; l < 16; l++)
{
byD_Map[i1][j][l << 1] = (byte)(abyte4[(i1 << 9) + (j << 4) + l] >> 4 & 0xf);
byD_Map[i1][j][(l << 1) + 1] = (byte)(abyte4[(i1 << 9) + (j << 4) + l] & 0xf);
}
}
}
}
catch(Exception exception) { }
abyte4 = null;
Run.gc();
for(int k = 23; k >= 0; k--)
if(T_D_EVENT[byMap_No][k] != 0 && (nE_Flag[byMap_No + 1] & 1 << k) != 0)
byD_Map[T_D_E_Z[byMap_No][k]][T_D_E_Y[byMap_No][k]][T_D_E_X[byMap_No][k]] = 12;
byMy_X = (byte)((abyte0[byMap_No] << 2) + 2);
byMy_Y = (byte)((abyte1[byMap_No] << 2) + 2);
byMy_Z = abyte2[byMap_No];
byMy_GType = 0;
byGame_Chap[0] = 6;
}
}
public void CDInit()
{
byte abyte0[] = {
0, 3, 0, 7, 0, 7
};
nObj_Count[0] = 0;
nObj_Count[1] = 0;
nObj_Count[2] = 0;
nObj_XSpeed[0] = 0;
nObj_YSpeed[0] = 0;
byGame_Chap[1] = 0;
byCursor[0] = 0;
nGame_Timer[1] = 0;
nObj_X[1] = 0;
nObj_Y[1] = 0;
nObj_Z[1] = 0;
nGame_Flag &= 0xfffffdff;
if((nGame_Flag & 0x800) != 0)
{
if(nE_Flag[0] == 7)
{
byGame_Chap[0] = 18;
nGame_Timer[0] = 0;
return;
}
byGame_Chap[1] = abyte0[nE_Flag[0]];
nGame_Flag &= 0xfffff7ff;
nGame_Flag |= 0x40;
}
if(nMy_HP[0][0] <= 0)
nMy_HP[0][0] = 1;
if(nMy_HP[1][0] <= 0)
nMy_HP[1][0] = 1;
bySKey = 3;
nGame_Flag |= 8;
nIK = 0;
byGame_Chap[0] = 7;
offGfx.setColor(0, 0, 0);
offGfx.fillRect(0, 0, getWidth(), getHeight());
}
public void CD()
{
byte abyte0[][] = {
{
0, 1
}, {
0, -1
}, {
-1, 0
}, {
1, 0
}
};
char ac[][] = {
{
'\u62E3', '\u5230', '\u836F', '\u4E38'
}, {
'\u62E3', '\u5230', '\u88C5', '\u5907'
}, {
'\u62E3', '\u5230', '\u7269', '\u54C1'
}
};
int j3 = nE_Flag[0];
if(byMap_No == 2)
j3 = 5;
int l2 = nIK | nRK;
if(byGame_Chap[1] == 0)
{
if(nObj_Count[0] == 0)
{
byte byte1 = byMy_X;
byte byte2 = byMy_Y;
nObj_XSpeed[0] = 0;
nObj_YSpeed[0] = 0;
nObj_Count[0] = 3;
if((l2 & 0x808000) != 0)
{
byte2 -= 4;
byMy_GType = 2;
nObj_YSpeed[0] = -1;
} else
if((l2 & 0x10200000) != 0)
{
byte2 += 4;
byMy_GType = 0;
nObj_YSpeed[0] = 1;
} else
if((l2 & 0x1020000) != 0)
{
byte1 -= 4;
byMy_GType = 4;
nObj_XSpeed[0] = -1;
} else
if((l2 & 0x8080000) != 0)
{
byte1 += 4;
byMy_GType = 6;
nObj_XSpeed[0] = 1;
} else
{
nObj_Count[0] = 0;
if((l2 & 0x40040000) != 0)
switch(byD_Map[byMy_Z][(byMy_Y >> 2) + abyte0[byMy_GType >> 1][1]][(byMy_X >> 2) + abyte0[byMy_GType >> 1][0]])
{
case 3: // '\003'
for(int i = 23; i >= 16; i--)
{
if(T_D_E_X[byMap_No][i] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][i] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][i] - byMy_Z != 0)
continue;
if((nE_Flag[byMap_No + 1] & 1 << i) == 0)
{
bySKey = 1;
nGame_Flag |= 0x100;
byGame_Chap[1] = T_D_EVENT[byMap_No][i];
switch(byMap_No)
{
case 2: // '\002'
if(byGame_Chap[1] - 2 == 0 && (byMy_Key & 2) != 0)
{
nE_Flag[byMap_No + 1] |= 1 << i;
byGame_Chap[1] = 3;
nObj_X[1] = (byMy_X >> 2) + abyte0[byMy_GType >> 1][0];
nObj_Y[1] = (byMy_Y >> 2) + abyte0[byMy_GType >> 1][1];
nObj_Z[1] = byMy_Z;
}
if(byGame_Chap[1] - 4 == 0 && (byMy_Key & 1) != 0)
{
nE_Flag[byMap_No + 1] |= 1 << i;
byGame_Chap[1] = 5;
nObj_X[1] = (byMy_X >> 2) + abyte0[byMy_GType >> 1][0];
nObj_Y[1] = (byMy_Y >> 2) + abyte0[byMy_GType >> 1][1];
nObj_Z[1] = byMy_Z;
}
break;
}
}
break;
}
break;
case 5: // '\005'
case 8: // '\b'
for(int j = 31; j >= 24; j--)
{
if(T_D_E_X[byMap_No][j] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][j] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][j] - byMy_Z != 0)
continue;
if((nE_Flag[byMap_No + 1] & 1 << j) == 0)
{
bySKey = 1;
nE_Flag[byMap_No + 1] |= 1 << j;
nGame_Flag |= 0x100;
byGame_Chap[1] = T_D_EVENT[byMap_No][j];
switch(byMap_No)
{
case 0: // '\0'
if(byGame_Chap[1] - 4 == 0)
byMy_Key |= 1;
break;
case 1: // '\001'
byGame_Chap[1] = 1;
for(int i2 = 0; i2 < 4; i2++)
if((nE_Flag[2] & 1 << i2 + 24) != 0)
byGame_Chap[1]++;
if(byGame_Chap[1] - 5 == 0)
{
nE_Flag[2] &= 0xfffdffff;
byD_Map[0][15][16] = 7;
}
break;
}
}
break;
}
break;
case 4: // '\004'
for(int k = 15; k >= 0; k--)
{
if(T_D_E_X[byMap_No][k] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][k] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][k] - byMy_Z != 0)
continue;
byD_Map[byMy_Z][(byMy_Y >> 2) + abyte0[byMy_GType >> 1][1]][(byMy_X >> 2) + abyte0[byMy_GType >> 1][0]] = 12;
nE_Flag[byMap_No + 1] |= 1 << k;
nGame_Timer[1] = 15;
if(T_D_EVENT[byMap_No][k] - 4 < 0)
{
nObj_Count[2] = 0;
byMy_Item[T_D_EVENT[byMap_No][k] - 1]++;
if(byMy_Item[T_D_EVENT[byMap_No][k] - 1] - 99 > 0)
byMy_Item[T_D_EVENT[byMap_No][k] - 1] = 99;
} else
if(T_D_EVENT[byMap_No][k] - 20 < 0)
{
nObj_Count[2] = 1;
byMy_Weapon[T_D_EVENT[byMap_No][k] - 4 >> 3][T_D_EVENT[byMap_No][k] - 4 & 7]++;
if(byMy_Weapon[T_D_EVENT[byMap_No][k] - 4 >> 3][T_D_EVENT[byMap_No][k] - 4 & 7] - 99 > 0)
byMy_Weapon[T_D_EVENT[byMap_No][k] - 4 >> 3][T_D_EVENT[byMap_No][k] - 4 & 7] = 99;
} else
{
byMy_Key |= 1 << T_D_EVENT[byMap_No][k] - 20;
nObj_Count[2] = 2;
}
break;
}
break;
case 7: // '\007'
for(int l = 23; l >= 16; l--)
{
if(T_D_E_X[byMap_No][l] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][l] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][l] - byMy_Z != 0)
continue;
nGame_Flag |= 0x800;
bySKey = 1;
nE_Flag[byMap_No + 1] |= 1 << l;
nGame_Flag |= 0x100;
byGame_Chap[1] = T_D_EVENT[byMap_No][l];
nObj_X[1] = (byMy_X >> 2) + abyte0[byMy_GType >> 1][0];
nObj_Y[1] = (byMy_Y >> 2) + abyte0[byMy_GType >> 1][1];
nObj_Z[1] = byMy_Z;
break;
}
break;
}
else
if((l2 & 0x100) != 0)
{
byGame_Chap[3] = 6;
byGame_Chap[0] = 14;
}
}
if(byD_Map[byMy_Z][byte2 >> 2][byte1 >> 2] - 10 < 0)
{
nObj_XSpeed[0] = 0;
nObj_YSpeed[0] = 0;
nObj_Count[0] = 0;
}
} else
{
nObj_Count[0]--;
if(nObj_Count[0] == 0)
switch(byD_Map[byMy_Z][byMy_Y >> 2][byMy_X >> 2])
{
case 10: // '\n'
if(byMy_Z == 0)
{
byGame_Chap[0] = 12;
} else
{
nObj_Count[0] = 4;
nGame_Flag |= 2;
}
break;
case 11: // '\013'
nObj_Count[0] = 4;
nGame_Flag |= 2;
break;
case 14: // '\016'
for(int i1 = 23; i1 >= 16; i1--)
{
if(T_D_E_X[byMap_No][i1] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][i1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][i1] - byMy_Z != 0)
continue;
if((nE_Flag[byMap_No + 1] & 1 << i1) == 0)
{
bySKey = 1;
nE_Flag[byMap_No + 1] |= 1 << i1;
byGame_Chap[1] = T_D_EVENT[byMap_No][i1];
nGame_Flag |= 0x100;
}
break;
}
break;
case 12: // '\f'
case 13: // '\r'
default:
if(nObj_Count[1] == 0 && 14 - (Rand.nextInt() & 0x7f) > 0)
{
nGame_Timer[0] = 4;
byGame_Chap[0] = 4;
}
break;
}
}
} else
{
nObj_XSpeed[0] = 0;
nObj_YSpeed[0] = 0;
nGame_Flag |= 0x100;
if((nIK & 0x40040000) != 0)
{
byCursor[0] += 3;
if(T_TEND[j3][byGame_Chap[1] - 1] - byCursor[0] <= 0)
{
bySKey = 3;
byGame_Chap[1] = 0;
byCursor[0] = 0;
if(nObj_X[1] != 0)
{
byD_Map[nObj_Z[1]][nObj_Y[1]][nObj_X[1]] = 12;
nObj_X[1] = 0;
}
if((nGame_Flag & 0x800) != 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -