import java.applet.*; import java.util.*; import java.awt.*; import java.awt.event.*; public class T3 extends Applet implements Runnable,KeyListener { Thread tt; int AppletWidth,AppletHeight,ImageWidth,ImageHeight,X,Y,tmpX,tmpY; Image OffScreen,airplane,bullet,zd,GPy; Graphics drawOffScreen; MediaTracker MT; ImageSprite blt[],GIS[]; public void init() { addKeyListener(this); MT = new MediaTracker(this); //resize(640,480); resize(800,600); AppletWidth = getSize().width; AppletHeight = getSize().height; GPy = getImage(getDocumentBase(),"a2.GIF"); zd = getImage(getDocumentBase(),"zd.GIF"); airplane = getImage(getDocumentBase(),"a2.GIF"); bullet = getImage(getDocumentBase(),"zd.GIF"); MT.addImage(airplane,0); MT.addImage(bullet,0); try{ MT.waitForAll(); }catch(Exception e){} ImageWidth = airplane.getWidth(this); ImageHeight = airplane.getHeight(this); GIS = new ImageSprite[12];tmpY=20; for(int i = 0;i<GIS.length;i++) { GIS[i]=new ImageSprite(airplane,this); GIS[i].setLocation(20,tmpY); tmpY= tmpY+45; } blt = new BulletSprite[500]; for(int i = 0;i<blt.length;i++) { blt[i] = new BulletSprite(bullet,this,AppletWidth,AppletHeight); } OffScreen = createImage(AppletWidth,AppletHeight); drawOffScreen = OffScreen.getGraphics(); } public void update(Graphics g){paint(g);} public void paint(Graphics g) { drawOffScreen.clearRect(0,0,AppletWidth,AppletHeight); for(int i = 0;i<GIS.length;i++) { GIS[i].paintSprite(drawOffScreen); } for(int i = 0;i<blt.length;i++) { blt[i].paintSprite(drawOffScreen); } g.drawImage(OffScreen,0,0,this); } public void run() { int i2 = 0; while(tt !=null) { repaint(); try{ Thread.sleep(1); }catch(Exception e){} for(int i = 0;i<blt.length;i++) { blt[i].updateState(); //X = GIS[i].getX(); //Y = GIS[i].getY(); } if(i2++ > 0) { start2(); i2 = 0; } } } public void start() { tt = new Thread(this); tt.start(); } public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e) { /* //Case1: for(int i1 = 0;i1<GIS.length;i1++) { X = GIS[i1].getX(); Y = GIS[i1].getY(); Case1: //System.out.println("i1 = " + i1); for(int i = 0;i<blt.length;i++) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); if(blt[i].canVisible() == false && blt[i].canMove() == false) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); blt[i].setLocation(X+ImageWidth,Y+(ImageHeight/2)); blt[i].setVisible(true); blt[i].setMove(true); //System.out.println(i); break Case1; //break; } try{ Thread.sleep(1); }catch(Exception e1){} } } */ for(int i1 = 0;i1<GIS.length;i1++) { X = GIS[i1].getX(); Y = GIS[i1].getY(); //fire1(); fire2(X,Y); System.out.println("i1 = " + i1); } } public void fire1() { for(int i = 0;i<blt.length;i++) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); if(blt[i].canVisible() == false && blt[i].canMove() == false) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); blt[i].setLocation(X+ImageWidth,Y+(ImageHeight/2)); blt[i].setVisible(true); blt[i].setMove(true); //System.out.println(i); //break Case1; break; } try{ Thread.sleep(1); }catch(Exception e1){} } } public void fire2(int tX,int tY) { for(int i = 0;i<blt.length;i++) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); if(blt[i].canVisible() == false && blt[i].canMove() == false) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); blt[i].setLocation(tX+ImageWidth,tY+(ImageHeight/2)); blt[i].setVisible(true); blt[i].setMove(true); System.out.println(i); //break Case1; break; //continue; } } } public void keyReleased(KeyEvent e){} public void start1() { //Case1: for(int i1 = 0;i1<GIS.length;i1++) { X = GIS[i1].getX(); Y = GIS[i1].getY(); Case1: //System.out.println("i1 = " + i1); for(int i = 0;i<blt.length;i++) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); if(blt[i].canVisible() == false && blt[i].canMove() == false) { //X = GIS[i1].getX(); //Y = GIS[i1].getY(); blt[i].setLocation(X+ImageWidth,Y+(ImageHeight/2)); blt[i].setVisible(true); blt[i].setMove(true); //System.out.println(i); break Case1; //break; } //try{ // Thread.sleep(1); //}catch(Exception e1){} } } } public void start2() { for(int i1 = 0;i1<GIS.length;i1++) { X = GIS[i1].getX(); Y = GIS[i1].getY(); //fire1(); fire2(X,Y); //System.out.println("i1 = " + i1); } } } /* X = airplaneSprite.getX(); Y = airplaneSprite.getY(); */