old-java-games

java games my brother and I developed as kids.
Log | Files | Refs | README

TankArea.java (6453B)


      1 import java.awt.Color;
      2 import java.awt.Graphics;
      3 import java.awt.Image;
      4 import java.awt.MediaTracker;
      5 import java.io.File;
      6 import java.io.IOException;
      7 
      8 import javax.imageio.ImageIO;
      9 import javax.swing.JPanel;
     10 
     11 public class TankArea extends JPanel {
     12     private static final long serialVersionUID = -2906196036928924340L;
     13 
     14     Tank myApplet = null;
     15 
     16     Image badtankdown2;
     17     Image badtankdownshoot;
     18     Image badtankdownshoot2;
     19     Image badtankdown;
     20     Image badtankleft2;
     21     Image badtankleftshoot2;
     22     Image badtankleftshoot;
     23     Image badtankleft;
     24     Image badtankright2;
     25     Image badtankrightshoot2;
     26     Image badtankrightshoot;
     27     Image badtankright;
     28     Image badtankup2;
     29     Image badtankupshoot2;
     30     Image badtankupshoot;
     31     Image badtankup;
     32     Image tankdown2;
     33     Image tankdownshoot2;
     34     Image tankdownshoot;
     35     Image tankdown;
     36     Image tankleft2;
     37     Image tankleftshoot2;
     38     Image tankleftshoot;
     39     Image tankleft;
     40     Image tankright2;
     41     Image tankrightshoot2;
     42     Image tankrightshoot;
     43     Image tankright;
     44     Image tankup2;
     45     Image tankupshoot2;
     46     Image tankupshoot;
     47     Image tankup;
     48     Image enemyImage;
     49     Image personImage;
     50     Image pitImage;
     51 
     52     private Image explosion1, explosion2, explosion3;
     53     MediaTracker mt = null;
     54 
     55     public TankArea(Tank parent) {
     56         myApplet = parent;
     57         enemyImage = load(myApplet, "bad-tank-up.gif");
     58         personImage = load(myApplet, "tank-up.gif");
     59         pitImage = load(myApplet, "pit.gif");
     60         explosion1 = load(myApplet, "explosion1.gif");
     61         explosion2 = load(myApplet, "explosion2.gif");
     62         explosion3 = load(myApplet, "explosion3.gif");
     63         badtankdown2 = load(myApplet, "bad-tank-down-2.gif");
     64         badtankdownshoot = load(myApplet, "bad-tank-down-shoot.gif");
     65         badtankdownshoot2 = load(myApplet, "bad-tank-down-shoot-2.gif");
     66         badtankdown = load(myApplet, "bad-tank-down.gif");
     67         badtankleft2 = load(myApplet, "bad-tank-left-2.gif");
     68         badtankleftshoot2 = load(myApplet, "bad-tank-left-shoot-2.gif");
     69         badtankleftshoot = load(myApplet, "bad-tank-left-shoot.gif");
     70         badtankleft = load(myApplet, "bad-tank-left.gif");
     71         badtankright2 = load(myApplet, "bad-tank-right-2.gif");
     72         badtankrightshoot2 = load(myApplet, "bad-tank-right-shoot-2.gif");
     73         badtankrightshoot = load(myApplet, "bad-tank-right-shoot.gif");
     74         badtankright = load(myApplet, "bad-tank-right.gif");
     75         badtankup2 = load(myApplet, "bad-tank-up-2.gif");
     76         badtankupshoot2 = load(myApplet, "bad-tank-up-shoot-2.gif");
     77         badtankupshoot = load(myApplet, "bad-tank-up-shoot.gif");
     78         badtankup = load(myApplet, "bad-tank-up.gif");
     79         tankdown2 = load(myApplet, "tank-down-2.gif");
     80         tankdownshoot2 = load(myApplet, "tank-down-shoot-2.gif");
     81         tankdownshoot = load(myApplet, "tank-down-shoot.gif");
     82         tankdown = load(myApplet, "tank-down.gif");
     83         tankleft2 = load(myApplet, "tank-left-2.gif");
     84         tankleftshoot2 = load(myApplet, "tank-left-shoot-2.gif");
     85         tankleftshoot = load(myApplet, "tank-left-shoot.gif");
     86         tankleft = load(myApplet, "tank-left.gif");
     87         tankright2 = load(myApplet, "tank-right-2.gif");
     88         tankrightshoot2 = load(myApplet, "tank-right-shoot-2.gif");
     89         tankrightshoot = load(myApplet, "tank-right-shoot.gif");
     90         tankright = load(myApplet, "tank-right.gif");
     91         tankup2 = load(myApplet, "tank-up-2.gif");
     92         tankupshoot2 = load(myApplet, "tank-up-shoot-2.gif");
     93         tankupshoot = load(myApplet, "tank-up-shoot.gif");
     94         tankup = load(myApplet, "tank-up.gif");
     95     }
     96 
     97     Image load(Tank parent, String picture) {
     98         try {
     99             Image im = ImageIO.read(new File("../Assets/" + picture));
    100             checkImage(im, picture);
    101             return (im);
    102         } catch (IOException e) {
    103             // TODO Auto-generated catch block
    104             e.printStackTrace();
    105             System.out.println("Image Not found: " + picture);
    106         }
    107         return null;
    108     }
    109 
    110     void checkImage(Image image, String name) {
    111         if (mt != null) {
    112             mt.addImage(image, 0);
    113             try {
    114                 mt.waitForID(0, 5000);
    115             } catch (InterruptedException ie) {
    116                 // nothing to do
    117             }
    118             if (mt.isErrorID(0))
    119                 System.out.println("Image Not found: " + name.toString());
    120         }
    121     }
    122 
    123     @Override
    124     public void paintComponent(Graphics g) {
    125         super.paintComponent(g);
    126         if (myApplet == null)
    127             return;
    128         final int w = getBounds().width;
    129         final int h = getBounds().height;
    130         g.setColor(Color.gray);
    131         g.fillRect(0, 0, w, h);
    132         g.setColor(Color.black);
    133 
    134         if (Tank.playerPosition != null) {
    135             // show the player
    136             // g.drawString("#", myApplet.playerPosition.x, myApplet.playerPosition.y);
    137             int elem = myApplet.shooting ? Tank.SHOOTING : Tank.NOTSHOOTING;
    138             g.drawImage(myApplet.goodImages[myApplet.goodImageNo][elem], Tank.playerPosition.x,
    139                     Tank.playerPosition.y, Color.gray, null);
    140 
    141             // show the pits
    142             for (int i = 0; i < Tank.pitPositions.length; i++) {
    143                 g.drawImage(pitImage, Tank.pitPositions[i].x, Tank.pitPositions[i].y, Color.gray, null);
    144             }
    145 
    146             // show the enemies
    147             for (int i = 0; i < Tank.enemyPositions.length; i++) {
    148                 if (Tank.enemyPositions[i].x > -1) {
    149                     int eelem = myApplet.enemyShooting[i] ? Tank.SHOOTING : Tank.NOTSHOOTING;
    150                     g.drawImage(myApplet.badImages[myApplet.enemyImageNo[i]][eelem], Tank.enemyPositions[i].x,
    151                             Tank.enemyPositions[i].y, null);
    152                 }
    153             }
    154             if (myApplet.explosionx != -1) {
    155                 g.drawImage(explosion1, myApplet.explosionx, myApplet.explosiony, Color.gray, null);
    156                 try {
    157                     Thread.sleep(80);
    158                     g.drawImage(explosion2, myApplet.explosionx, myApplet.explosiony, Color.gray, null);
    159                     Thread.sleep(80);
    160                     g.drawImage(explosion3, myApplet.explosionx, myApplet.explosiony, Color.gray, null);
    161                 } catch (Exception e) {
    162                 }
    163                 myApplet.explosionx = -1;
    164                 myApplet.explosiony = -1;
    165             }
    166         }
    167     }
    168 }