📄 maincanvas.java
字号:
else
readRecords();
}
catch(Exception exception)
{
System.out.println("Record Store not found");
}
try
{
tilesImage = Image.createImage("/ground.png");
unitImage = Image.createImage("/player.png");
enemyImage = Image.createImage("/axis.png");
specialImage = Image.createImage("/special.png");
craterImage = Image.createImage("/craters.png");
explosionImage = Image.createImage("/explosion.png");
smokeImage = Image.createImage("/smoke.png");
symbolsImage = Image.createImage("/symbols.png");
splashImage = Image.createImage("/activision.png");
titleImage = Image.createImage("/title.png");
selectImage = Image.createImage("/select.png");
arrowsImage = Image.createImage("/arrows.png");
menuImage = Image.createImage("/menu.png");
statusBar = Image.createImage(66, fontHeight);
}
catch(Exception exception1)
{
System.out.println("Images not found");
}
int j = (height >> 4) + 1;
if((height & 0xf) > 0)
j++;
screenImageHeight = j << 4;
screenImage = Image.createImage(176, screenImageHeight);
screenImageGraphics = screenImage.getGraphics();
GetSound("intro");
PlaySound(1);
screenType = 0;
timer = new Timer();
frameCount = 0;
StartSimpleTimer((short)1, 2500);
}
private Image GetImage(String s)
{
try
{
return Image.createImage("/" + s + ".png");
}
catch(Exception exception)
{
System.out.println(s + ".png not found");
}
return Image.createImage(1, 1);
}
private void GetSound(String s)
{
try
{
InputStream inputstream = getClass().getResourceAsStream("/" + s + ".wav");
inputstream.read(soundWAV, 0, soundWAV.length);
}
catch(Exception exception)
{
System.out.println("Error reading " + s + ".wav - " + exception);
}
}
private void ReadMap()
{
projectileArrayUsedStart = -1;
projectileArrayUnusedStart = 0;
for(int i = 38; i >= 0; i--)
projectileArrayNext[i] = (int)(i + 1);
projectileArrayNext[39] = -1;
screenImageLeft = 0;
for(int j = 0; j < 3; j++)
{
if(playerType[j] == 4 || playerType[j] == 3)
playerSpecial[j] = 0;
else
playerSpecial[j] = INITIAL_AMMO[WEAPON_TYPE[playerType[j]]];
playerHealth[j] = INITIAL_HEALTH[playerType[j]];
playerNextShot[j] = 0;
playerDirection[j] = 1;
playerMoving[j] = false;
playerProtected[j] = 0;
playerInBuilding[j] = false;
playerShowStatus[j] = 60;
}
Object obj = null;
Object obj1 = null;
Vector vector = new Vector();
Vector vector1 = new Vector();
Vector vector2 = new Vector();
Vector vector3 = new Vector();
Vector vector4 = new Vector();
Vector vector5 = new Vector();
try
{
InputStream inputstream = getClass().getResourceAsStream("m" + missionNumberCurrent);
DataInputStream datainputstream = new DataInputStream(inputstream);
int k = datainputstream.read();
int j1;
int i2;
do
{
j1 = k >>> 4 & 0xf;
i2 = k & 0xf;
if(j1 > 1)
break;
int k2 = datainputstream.read();
vector1.addElement(new Integer(i2));
vector2.addElement(new Integer(k2));
k = datainputstream.read();
} while(true);
int int0 = 3;
for(int k3 = vector1.size() - 1; k3 >= 0; k3--)
{
playerX[int0] = ((Integer)vector1.elementAt(k3)).intValue() << 4;
playerY[int0] = ((Integer)vector2.elementAt(k3)).intValue() << 4;
playerNextShot[int0] = 0;
int j3;
if(missionNumberCurrent == 9)
j3 = 2;
else
j3 = missionNumberCurrent / 3;
if(j3 == 0)
playerHealth[int0] = 0;
else
playerHealth[int0] = (int)(Math.abs(random.nextInt()) % (j3 + 1));
playerDirection[int0] = 7;
int0++;
}
playerArrayNext[int0 - 1] = -1;
for(int l3 = int0 - 2; l3 >= 0; l3--)
playerArrayNext[l3] = (int)(l3 + 1);
if(int0 > 3)
opponentArrayStart = 3;
else
opponentArrayStart = -1;
vector1 = new Vector();
vector2 = new Vector();
while(k != 240)
{
int l2 = datainputstream.read();
if(j1 == 7)
{
screenImageLeft = ((i2 << 4) + 8) - width / 2;
if(screenImageLeft < 0)
screenImageLeft = 0;
else
if(screenImageLeft + width > 176)
screenImageLeft = 176 - width;
playerArrayStart = currentPlayer = 0;
takeCover = false;
playerX[0] = i2 << 4;
playerY[0] = l2 << 4;
playerX[1] = i2 - 1 << 4;
playerY[1] = l2 + 1 << 4;
playerX[2] = i2 + 1 << 4;
playerY[2] = playerY[1];
} else
{
vector.addElement(new Integer(j1));
vector1.addElement(new Integer(i2));
vector2.addElement(new Integer(l2));
}
k = datainputstream.read();
j1 = k >>> 4 & 0xf;
i2 = k & 0xf;
}
k = datainputstream.read();
do
{
int k1 = k >>> 2 & 0x3f;
i2 = k & 0x3;
if(k1 == 63)
break;
vector3.addElement(new Integer(k1 - 1));
switch(i2)
{
case 0: // '\0'
vector4.addElement(new Integer(4));
break;
case 1: // '\001'
vector4.addElement(new Integer(0));
break;
case 2: // '\002'
vector4.addElement(new Integer(2));
break;
case 3: // '\003'
vector4.addElement(new Integer(3));
break;
}
vector5.addElement(new Integer(-1));
k = datainputstream.read();
} while(true);
int i4 = -1;
int j4 = 0;
boolean flag = false;
int k4 = -1;
i2 = 0;
do
{
if(i4 < 0)
{
j4 = 0;
for(int l4 = 2; l4 >= 0; l4--)
{
int l = datainputstream.read();
j4 += l << l4 * 8;
}
i4 = 3;
}
if(k4 == -1)
{
k4 = j4 >>> i4 * 6 & 0x3f;
if(k4 == 63)
break;
} else
{
int i1 = j4 >>> i4 * 6 & 0x3f;
if(flag)
{
if(i1 == 0)
{
MapData[i2 / 11][i2 % 11] = (int)(k4 - 1);
i2++;
break;
}
for(int i5 = i1; i5 > 0; i5--)
{
MapData[i2 / 11][i2 % 11] = (int)(k4 - 1);
i2++;
}
flag = false;
k4 = -1;
} else
if(i1 == 63)
{
flag = true;
} else
{
MapData[i2 / 11][i2 % 11] = (int)(k4 - 1);
i2++;
k4 = i1;
}
}
i4--;
} while(true);
datainputstream.close();
inputstream.close();
}
catch(Exception exception)
{
System.out.println("Exception: " + exception.toString());
}
int int1 = 0;
int int2 = (int)vector3.size();
specialArrayExplodableStart = -1;
int aint0[] = new int[16];
int aint1[] = new int[16];
for(int j5 = vector.size() - 1; j5 >= 0; j5--)
{
int l1 = ((Integer)vector.elementAt(j5)).intValue();
if(specialArrayExplodableStart < 0 && l1 <= 6)
specialArrayExplodableStart = int1;
int int3;
int int4;
switch(l1)
{
case 2: // '\002'
int3 = 4;
int4 = 1;
break;
case 3: // '\003'
int3 = 0;
int4 = 0;
break;
case 4: // '\004'
int3 = 1;
int4 = 0;
break;
case 5: // '\005'
int3 = 3;
int4 = 0;
break;
case 6: // '\006'
int3 = 2;
int4 = 0;
break;
case 8: // '\b'
int3 = 8;
int4 = 4;
break;
case 9: // '\t'
int3 = 6;
int4 = 4;
break;
case 10: // '\n'
int3 = 5;
int4 = 4;
break;
case 11: // '\013'
int3 = 7;
int4 = 4;
break;
case 12: // '\f'
int3 = 9;
int4 = 5;
break;
case 7: // '\007'
default:
int3 = -1;
int4 = -1;
break;
}
if(int3 >= 0)
{
int j2 = ((Integer)vector1.elementAt(j5)).intValue();
int i3 = ((Integer)vector2.elementAt(j5)).intValue();
int int5 = 0;
for(int k5 = (SPECIAL_GFX_W[int3] >> 4) - 1; k5 >= 0; k5--)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -