📄 btltank.jad
字号:
getGraphics().setColor(Color.black);
getGraphics().fillRect(0, 0, size().width, size().height);
getGraphics().setFont(fFont1);
drawTextCentered(0, size().height / 2, size().width, "Loading " + s, getGraphics());
Image image = getImage(getCodeBase(), s);
mediatracker.addImage(image, 0);
try
{
mediatracker.waitForAll();
}
catch(InterruptedException interruptedexception)
{
System.out.println(interruptedexception);
}
return image;
}
public void update(Graphics g)
{
if(fReadyToBlit)
{
fBlitting = true;
if(DEBUG)
{
fOffScrGraphics.setFont(fFont1);
fOffScrGraphics.setColor(Color.white);
FontMetrics fontmetrics = getFontMetrics(getFont());
Integer integer = new Integer(fView.fX);
String s = "X: " + integer.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight());
Integer integer1 = new Integer(fView.fY);
s = "Y: " + integer1.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 2);
Integer integer2 = new Integer(fView.fZ);
s = "Z: " + integer2.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 3);
Integer integer3 = new Integer(fView.fYAngle);
s = "YRot: " + integer3.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 4);
Integer integer4 = new Integer(fWorld.fPolygonList.fPolygons[0].fZMin);
s = "ZMin: " + integer4.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 5);
Integer integer5 = new Integer(fWorld.fPolygonList.fPolygons[0].fZMax);
s = "ZMax: " + integer5.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 6);
Integer integer6 = new Integer(fWorld.fPolygonList.fNumPolygons);
s = "#Polygons: " + integer6.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 7);
Integer integer7 = new Integer(fWorld.fNumObjects);
s = "#Objects: " + integer7.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 8);
Integer integer8 = new Integer(fView.fNumActiveBullets);
s = "#Bullets: " + integer8.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 9);
Integer integer9 = new Integer(fStatus);
s = "#Status: " + integer9.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 10);
Integer integer10 = new Integer(fView.fEnergy);
s = "#Energy: " + integer10.toString();
fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 11);
}
g.drawImage(fOffScrImage, 0, 0, this);
fBlitting = false;
}
}
public void predrawBackground()
{
Graphics g = fBgrImage.getGraphics();
int i = 60;
for(int j = 0; j < fScreenHeight / 2 + 5; j += 5)
{
Color color = new Color(i, 0, 0);
g.setColor(color);
g.fillRect(0, j, fScreenWidth - 1, 5);
i += 5;
}
}
public boolean keyUp(Event event, int i)
{
switch(i)
{
case 74: // 'J'
case 106: // 'j'
case 1006:
fRotateLeft = false;
fRotationSpeed = 5;
break;
case 76: // 'L'
case 108: // 'l'
case 1007:
fRotateRight = false;
fRotationSpeed = 5;
break;
case 73: // 'I'
case 105: // 'i'
case 1004:
fMoveForward = false;
fMovementSpeed = 1;
break;
case 75: // 'K'
case 107: // 'k'
case 1005:
fMoveBackward = false;
fMovementSpeed = 1;
break;
case 32: // ' '
fShooting = false;
break;
}
return true;
}
public void createPoly()
{
ZVertex azvertex[] = new ZVertex[50];
int i = 0;
do
azvertex[i] = new ZVertex();
while(++i < 50);
azvertex[0].SetLocal(25, -5, -20);
azvertex[1].SetLocal(-25, -5, -20);
azvertex[2].SetLocal(-25, -5, 20);
azvertex[3].SetLocal(25, -5, 20);
azvertex[4].SetLocal(15, 10, -10);
azvertex[5].SetLocal(-15, 10, -10);
azvertex[6].SetLocal(-15, 10, 10);
azvertex[7].SetLocal(15, 10, 10);
azvertex[10].SetLocal(5, -15, -10);
azvertex[11].SetLocal(-5, -15, -10);
azvertex[12].SetLocal(-5, -15, 10);
azvertex[13].SetLocal(5, -15, 10);
azvertex[14].SetLocal(10, -5, -10);
azvertex[15].SetLocal(-10, -5, -10);
azvertex[16].SetLocal(-10, -5, 10);
azvertex[17].SetLocal(10, -5, 10);
azvertex[20].SetLocal(2, -12, 10);
azvertex[21].SetLocal(-2, -12, 10);
azvertex[22].SetLocal(-2, -12, 55);
azvertex[23].SetLocal(2, -12, 55);
azvertex[24].SetLocal(2, -10, 10);
azvertex[25].SetLocal(-2, -10, 10);
azvertex[26].SetLocal(-2, -10, 55);
azvertex[27].SetLocal(2, -10, 55);
int ai[] = {
1, 18, 4, 0, 1, 5, 4, 10, 200, 10,
4, 5, 6, 7, 4, 10, 200, 10, 4, 6,
2, 3, 7, 10, 200, 10, 4, 2, 1, 0,
3, 10, 200, 10, 4, 2, 6, 5, 1, 10,
200, 10, 4, 4, 7, 3, 0, 10, 200, 10,
4, 10, 11, 15, 14, 10, 200, 10, 4, 15,
16, 17, 14, 10, 200, 10, 4, 16, 12, 13,
17, 10, 200, 10, 4, 12, 11, 10, 13, 10,
200, 10, 4, 12, 16, 15, 11, 10, 200, 10,
4, 14, 17, 13, 10, 10, 200, 10, 4, 20,
21, 25, 24, 10, 200, 10, 4, 25, 26, 27,
24, 10, 200, 10, 4, 26, 22, 23, 27, 10,
200, 10, 4, 22, 21, 20, 23, 10, 200, 10,
4, 22, 26, 25, 21, 10, 200, 10, 4, 24,
27, 23, 20, 10, 200, 10
};
int j = 6 + fLevel * 2;
if(j > 12)
j = 12;
int ai1[] = new int[11];
ai1[0] = 5;
int k = 1;
int l = 0;
do
{
ZEnemyObject zenemyobject = new ZEnemyObject();
zenemyobject.SetVertices(azvertex, 40);
zenemyobject.SetFacets(ai);
ai1[k] = 700;
ai1[k + 1] = -350 + 150 * l;
zenemyobject.SetInitialTranslation(ai1[k], 0, ai1[k + 1]);
zenemyobject.SetInitialAngle(0, 480, 0);
zenemyobject.SetSpeed(j);
zenemyobject.SetRadius(30);
zenemyobject.SetType(1);
fWorld.Add(zenemyobject);
k += 2;
} while(++l < 5);
fWorld.SetEnemyDeployPoints(ai1);
int i1 = -1000;
do
{
int j1 = -1000;
do
if(i1 != 0 || j1 != 0)
{
ZBarrierObject zbarrierobject = new ZBarrierObject();
zbarrierobject.Put(i1, 0, j1, 0, 0, 0, 1);
}
while((j1 += 500) <= 1000);
} while((i1 += 500) <= 1000);
fView.SetPos(100, -20, 100, 0, 240, 0);
fWorld.SetEdges(-2000, -2000, 2000, 2000);
}
public void start()
{
if(fThread == null)
{
fThread = new Thread(this);
fThread.start();
}
fStatus = 4;
}
private void drawStats(Graphics g)
{
int i = 10 + fStatsLeftMargin;
int j = fFont1Height;
g.setFont(fFont1);
g.setColor(Color.green);
g.drawString("ENERGY", 10, j);
j -= 3;
for(int k = 0; k < fView.fEnergy; k++)
{
g.fillRect(i, j, 5, 3);
i += 7;
}
g.setColor(Color.pink);
j += fFont1Height;
i = 10 + fStatsLeftMargin;
g.drawString("ENEMY", 10, j);
j -= 3;
for(int l = 0; l < fView.fRemainingEnemies; l++)
{
g.fillRect(i, j, 5, 3);
i += 7;
}
g.setColor(Color.white);
j += fFont1Height;
i = 10 + fStatsLeftMargin;
g.drawString("SCORE ", 10, j);
g.drawString("" + fView.fScore, i, j);
}
public boolean mouseDown(Event event, int i, int j)
{
if(fStatus == 1)
{
newGame();
newLevel();
}
return true;
}
public void run()
{
createGame();
enterIntro();
fBgrSnd.loop();
do
{
if(!fBlitting)
{
fReadyToBlit = false;
drawOffScreen();
fReadyToBlit = true;
repaint();
}
try
{
Thread.sleep(5L);
}
catch(InterruptedException _ex) { }
} while(true);
}
public void init()
{
}
private void startAfterDying()
{
fMovementSpeed = 1;
fRotationSpeed = 5;
}
private void enterIntro()
{
fStatus = 1;
fWorld.RemoveAllObjects();
createIntroObject();
}
public BtlTank()
{
BGR = true;
fMatrix = new ZMatrix();
lightX = 160;
lightY = 100;
lightZ = 100;
lightIntensity = 50;
fDrawMap = true;
}
public void createIntroObject()
{
ZVertex azvertex[] = new ZVertex[50];
int i = 0;
do
azvertex[i] = new ZVertex();
while(++i < 50);
azvertex[0].SetLocal(25, -5, -20);
azvertex[1].SetLocal(-25, -5, -20);
azvertex[2].SetLocal(-25, -5, 20);
azvertex[3].SetLocal(25, -5, 20);
azvertex[4].SetLocal(15, 10, -10);
azvertex[5].SetLocal(-15, 10, -10);
azvertex[6].SetLocal(-15, 10, 10);
azvertex[7].SetLocal(15, 10, 10);
azvertex[10].SetLocal(5, -15, -10);
azvertex[11].SetLocal(-5, -15, -10);
azvertex[12].SetLocal(-5, -15, 10);
azvertex[13].SetLocal(5, -15, 10);
azvertex[14].SetLocal(10, -5, -10);
azvertex[15].SetLocal(-10, -5, -10);
azvertex[16].SetLocal(-10, -5, 10);
azvertex[17].SetLocal(10, -5, 10);
azvertex[20].SetLocal(2, -12, -60);
azvertex[21].SetLocal(-2, -12, -60);
azvertex[22].SetLocal(-2, -12, -10);
azvertex[23].SetLocal(2, -12, -10);
azvertex[24].SetLocal(2, -10, -60);
azvertex[25].SetLocal(-2, -10, -60);
azvertex[26].SetLocal(-2, -10, -10);
azvertex[27].SetLocal(2, -10, -10);
int ai[] = {
1, 18, 4, 0, 1, 5, 4, 10, 200, 10,
4, 5, 6, 7, 4, 10, 200, 10, 4, 6,
2, 3, 7, 10, 200, 10, 4, 2, 1, 0,
3, 10, 200, 10, 4, 2, 6, 5, 1, 10,
200, 10, 4, 4, 7, 3, 0, 10, 200, 10,
4, 10, 11, 15, 14, 10, 200, 10, 4, 15,
16, 17, 14, 10, 200, 10, 4, 16, 12, 13,
17, 10, 200, 10, 4, 12, 11, 10, 13, 10,
200, 10, 4, 12, 16, 15, 11, 10, 200, 10,
4, 14, 17, 13, 10, 10, 200, 10, 4, 20,
21, 25, 24, 10, 200, 10, 4, 25, 26, 27,
24, 10, 200, 10, 4, 26, 22, 23, 27, 10,
200, 10, 4, 22, 21, 20, 23, 10, 200, 10,
4, 22, 26, 25, 21, 10, 200, 10, 4, 24,
27, 23, 20, 10, 200, 10
};
ZExplodingObject zexplodingobject = new ZExplodingObject();
zexplodingobject.SetVertices(azvertex, 40);
zexplodingobject.SetFacets(ai);
zexplodingobject.SetInitialTranslation(200, 0, 200);
zexplodingobject.SetType(1);
zexplodingobject.SetRotationSpeed(0, 26, 0);
fWorld.Add(zexplodingobject);
fView.SetPos(120, -20, 120, 0, 240, 0);
}
static final int PLAYING = 0;
static final int INTRO = 1;
static final int ENDINGLEVEL = 2;
static final int GAMEOVER = 3;
static final int LOADING = 4;
int fStatus;
int fStatusTimer;
int fStartingLevelMessageCountdown;
int fLowEnergyWarningMessageCountdown;
boolean fLowEnergyWarningMessageHasPlayed;
int fScreenWidth;
int fScreenHeight;
int fXMidScr;
int fYMidScr;
boolean fMoveForward;
boolean fMoveBackward;
boolean fRotateLeft;
boolean fRotateRight;
boolean fShooting;
int fMovementSpeed;
int fRotationSpeed;
static final int DEFAULT_MOVEMENT_SPEED = 1;
static final int DEFAULT_ROTATION_SPEED = 5;
static final int MAX_MOVEMENT_SPEED = 20;
static final int MAX_ROTATION_SPEED = 26;
static final int MOVEMENT_SPEED_INCREMENT = 3;
static final int ROTATION_SPEED_INCREMENT = 5;
boolean DEBUG;
boolean BGR;
Graphics fOffScrGraphics;
Image fOffScrImage;
Thread fThread;
ZMatrix fMatrix;
int lightX;
int lightY;
int lightZ;
int lightIntensity;
ZLight fLight;
ZView fView;
ZWorld fWorld;
boolean fReadyToBlit;
boolean fBlitting;
boolean fGameIsLoaded;
boolean fWireframeMode;
boolean fDrawMap;
int fMapScalingFactor;
Image fBgrImage;
Image fTitleImage;
static Font fFont1 = new Font("Times", 1, 10);
static Font fFont2 = new Font("Times", 1, 20);
static Font fFont3 = new Font("Times", 1, 10);
static int fFont1Height;
static int fFont2Height;
AudioClip fPlayerGunSnd;
AudioClip fBgrSnd;
AudioClip fCollideSnd;
AudioClip fExplodeSnd;
AudioClip fViewerCollisionSnd;
int fLevel;
int fStatsLeftMargin;
Image fSkyImage;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -