📄 aganimationcanvas.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
import java.io.PrintStream;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.*;
public class AGAnimationCanvas extends Canvas
implements CommandListener
{
private Air_Gunner midlet;
private Command cmClose;
private Command cmStart;
private Image im1;
private Image im2;
private Image buffer;
private Image im4;
private Image EX;
private Image bckgrnd;
private Image planeNorm;
private Image planeLeft;
private Image planeRight;
private Image planeUp;
private Image planeDown;
private Image bulletExp1;
private Image bulletExp2;
private Image bck_bottom;
private Image enemy1;
private Image enemy2;
private Image planeExplode;
private Image colBomb1;
private Image colBomb2;
private Image dotEnemy1;
private Timer tm;
private Timer m_scheduler;
private AGAnimateTimerTask tt;
private int width;
private int height;
int position1X;
int position1Y;
int enemyPosX1;
int enemyPosY1;
int enemyPosX2;
int enemyPosY2;
boolean flagToDisplay1;
boolean flagToDisplay2;
boolean flagEX1;
boolean flagEX2;
int explodeX1;
int explodeY1;
int explodeX2;
int explodeY2;
private int planeX;
private int planeY;
private int totalDestroyed;
private String totalDestroyedString;
private boolean changeDisplay;
boolean displayBullet;
private int swapBullets;
private int bckgrndX;
private int bckgrndY;
private int planePosition;
private boolean outOfBounds;
int enemyBomb1X;
int enemyBomb1Y;
int enemyBomb2X;
int enemyBomb2Y;
boolean dropBomb1E1;
boolean dropBomb2E1;
boolean dropBomb1E2;
boolean dropBomb2E2;
boolean displayBomb1;
boolean displayBomb2;
private int damageTaken;
private String damageTakenString;
private boolean damageChanged;
private boolean gamefinished;
private boolean enemy1DisplaySwitch;
private boolean enemy2DisplaySwitch;
private boolean bomb1DisplaySwitch;
private boolean bomb2DisplaySwitch;
public AGAnimationCanvas(Air_Gunner air_gunner)
{
im1 = null;
im2 = null;
buffer = null;
im4 = null;
EX = null;
bckgrnd = null;
planeNorm = null;
planeLeft = null;
planeRight = null;
planeUp = null;
planeDown = null;
bulletExp1 = null;
bulletExp2 = null;
bck_bottom = null;
enemy1 = null;
enemy2 = null;
planeExplode = null;
colBomb1 = null;
colBomb2 = null;
dotEnemy1 = null;
position1X = 50;
position1Y = 50;
enemyPosX1 = -40;
enemyPosY1 = 50;
enemyPosX2 = 140;
enemyPosY2 = 40;
flagToDisplay1 = true;
flagToDisplay2 = true;
flagEX1 = false;
flagEX2 = false;
planeX = 50;
planeY = 90;
totalDestroyed = 0;
totalDestroyedString = "0";
changeDisplay = false;
displayBullet = false;
swapBullets = 1;
bckgrndX = 50;
bckgrndY = 50;
planePosition = 0;
outOfBounds = false;
dropBomb1E1 = true;
dropBomb2E1 = true;
dropBomb1E2 = true;
dropBomb2E2 = true;
displayBomb1 = false;
displayBomb2 = false;
damageTaken = 100;
damageTakenString = "100";
damageChanged = false;
gamefinished = false;
enemy1DisplaySwitch = true;
enemy2DisplaySwitch = true;
bomb1DisplaySwitch = true;
bomb2DisplaySwitch = true;
midlet = air_gunner;
width = getWidth();
height = getHeight();
cmClose = new Command("Close", 1, 1);
addCommand(cmClose);
setCommandListener(this);
initialiseItems();
drawToMemory();
tm = new Timer();
tt = new AGAnimateTimerTask(this);
tm.schedule(tt, 0L, 100L);
}
public void initialiseItems()
{
im1 = Image.createImage(11, 1);
Graphics g = im1.getGraphics();
g.setColor(0, 0, 0);
g.drawLine(0, 0, 11, 0);
im2 = Image.createImage(1, 11);
Graphics g1 = im2.getGraphics();
g1.setColor(0, 0, 0);
g1.drawLine(0, 0, 0, 11);
im4 = Image.createImage(2, 2);
Graphics g2 = im4.getGraphics();
g2.setColor(0, 0, 0);
g2.fillRect(0, 0, 2, 2);
dotEnemy1 = Image.createImage(2, 2);
Graphics g3 = dotEnemy1.getGraphics();
g3.setColor(255, 0, 0);
g3.fillRect(0, 0, 2, 2);
try
{
bckgrnd = Image.createImage("/bck300_clouds2.png");
planeNorm = Image.createImage("/plane1.png");
planeLeft = Image.createImage("/plane_right.png");
planeRight = Image.createImage("/plane_right2.png");
planeUp = Image.createImage("/plane_up.png");
planeDown = Image.createImage("/plane_down.png");
EX = Image.createImage("/EX2.png");
bulletExp1 = Image.createImage("/bullet1.png");
bulletExp2 = Image.createImage("/bullet2.png");
bck_bottom = Image.createImage("/bottom_bck.png");
enemy1 = Image.createImage("/en1.png");
enemy2 = Image.createImage("/en2.png");
planeExplode = Image.createImage("/planeEx.png");
colBomb1 = Image.createImage("/bomb1.png");
colBomb2 = Image.createImage("/bomb2.png");
}
catch(Exception exception)
{
System.out.println("error with image load: " + exception);
}
}
public void drawToMemory()
{
buffer = Image.createImage(width, height);
Graphics g = buffer.getGraphics();
g.setClip(0, 0, 96, 100);
g.drawImage(bckgrnd, bckgrndX, bckgrndY, 3);
if(flagToDisplay1)
{
if(enemy1DisplaySwitch)
{
g.drawImage(enemy1, enemyPosX1, enemyPosY1, 3);
enemy1DisplaySwitch = false;
} else
if(!enemy1DisplaySwitch)
{
g.drawImage(enemy2, enemyPosX1, enemyPosY1, 3);
enemy1DisplaySwitch = true;
}
if((enemyPosX1 > 20) & (enemyPosX1 < 24) & (dropBomb1E1))
{
dropBomb1E1 = false;
displayBomb1 = true;
enemyBomb1X = enemyPosX1;
enemyBomb1Y = enemyPosY1 + 6;
}
} else
if(flagEX1)
{
g.drawImage(EX, explodeX1, explodeY1, 3);
flagEX1 = false;
flagToDisplay1 = true;
totalDestroyed++;
changeDisplay = true;
}
if(flagToDisplay2)
{
if(enemy2DisplaySwitch)
{
g.drawImage(enemy1, enemyPosX2, enemyPosY2, 3);
enemy2DisplaySwitch = false;
} else
if(!enemy2DisplaySwitch)
{
g.drawImage(enemy2, enemyPosX2, enemyPosY2, 3);
enemy2DisplaySwitch = true;
}
if((enemyPosX2 > 70) & (enemyPosX2 < 74) & (dropBomb1E2))
{
dropBomb1E2 = false;
displayBomb2 = true;
enemyBomb2X = enemyPosX2;
enemyBomb2Y = enemyPosY2 + 6;
}
} else
if(flagEX2)
{
g.drawImage(EX, explodeX2, explodeY2, 3);
flagEX2 = false;
flagToDisplay2 = true;
totalDestroyed++;
changeDisplay = true;
}
g.drawImage(im1, position1X, position1Y, 3);
g.drawImage(im2, position1X, position1Y, 3);
g.drawImage(bck_bottom, planeX, planeY, 3);
g.drawImage(selectPlanePosition(planePosition), planeX, planeY, 3);
if(displayBomb1)
if((enemyBomb1X >= 35) & (enemyBomb1X <= 65) & (enemyBomb1Y > 80) & (enemyBomb1Y < 90))
{
damageTaken -= 10;
displayBomb1 = false;
dropBomb1E1 = true;
damageChanged = true;
} else
if(bomb1DisplaySwitch)
{
g.drawImage(colBomb1, enemyBomb1X, enemyBomb1Y, 3);
bomb1DisplaySwitch = false;
} else
if(!bomb1DisplaySwitch)
{
g.drawImage(colBomb2, enemyBomb1X, enemyBomb1Y, 3);
bomb1DisplaySwitch = true;
}
if(displayBomb2)
if((enemyBomb2X >= 35) & (enemyBomb2X <= 65) & (enemyBomb2Y > 80) & (enemyBomb2Y < 90))
{
damageTaken -= 10;
displayBomb2 = false;
dropBomb1E2 = true;
damageChanged = true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -