ZombieArea.java (3021B)
1 import java.awt.*; 2 import java.awt.event.ActionEvent; 3 import java.awt.event.ActionListener; 4 import java.io.File; 5 import java.io.IOException; 6 import java.util.logging.Level; 7 import java.util.logging.Logger; 8 9 import javax.imageio.ImageIO; 10 import javax.swing.JPanel; 11 12 public class ZombieArea extends JPanel implements ActionListener { 13 private static final long serialVersionUID = 8492549939914174796L; 14 Zombie myApplet = null; 15 Image zombieImage; 16 Image personImage; 17 Image pitImage; 18 private Image explosion1, explosion2, explosion3; 19 20 public ZombieArea(Zombie parent) { 21 myApplet = parent; 22 23 try { 24 zombieImage= ImageIO.read(new File("../Assets/zombie.gif")); 25 personImage = ImageIO.read(new File("../Assets/person.gif")); 26 pitImage = ImageIO.read(new File("../Assets/pit.gif")); 27 explosion1 = ImageIO.read(new File("../Assets/explosion1.gif")); 28 explosion2 = ImageIO.read(new File("../Assets/explosion2.gif")); 29 explosion3 = ImageIO.read(new File("../Assets/explosion3.gif")); 30 } catch (IOException ex) { 31 Logger.getLogger(ZombieArea.class.getName()).log(Level.SEVERE, null, ex); 32 } 33 } 34 35 @Override 36 public void paintComponent(Graphics g) { 37 super.paintComponent(g); 38 39 if (myApplet == null) return; 40 final int w = getBounds().width; 41 final int h = getBounds().height; 42 g.setColor(Color.gray); 43 g.fillRect(0, 0, w, h); 44 g.setColor(Color.black); 45 46 if (Zombie.playerPosition != null) { 47 // show the player 48 //g.drawString("#", myApplet.playerPosition.x, myApplet.playerPosition.y); 49 g.drawImage(personImage, Zombie.playerPosition.x, Zombie.playerPosition.y,Color.gray, null); 50 51 // show the pits 52 for (int i=0; i < Zombie.pitPositions.length; i++) { 53 g.drawImage(pitImage, Zombie.pitPositions[i].x, Zombie.pitPositions[i].y,Color.gray, null); 54 } 55 56 // show the zombies 57 for (int i=0; i < Zombie.zombiePositions.length; i++) { 58 if (Zombie.zombiePositions[i].x > -1) 59 g.drawImage(zombieImage, Zombie.zombiePositions[i].x, Zombie.zombiePositions[i].y,null); 60 } 61 62 if (myApplet.explosionx != -1) { 63 g.drawImage(explosion1, myApplet.explosionx, myApplet.explosiony,Color.gray, null); 64 65 try { 66 Thread.sleep(80); 67 g.drawImage(explosion2, myApplet.explosionx, myApplet.explosiony,Color.gray, null); 68 Thread.sleep(80); 69 g.drawImage(explosion3, myApplet.explosionx, myApplet.explosiony,Color.gray, null); 70 } 71 catch (Exception e) {} 72 myApplet.explosionx = -1; 73 myApplet.explosiony=-1; 74 } 75 } 76 } 77 78 @Override 79 public void actionPerformed(ActionEvent arg0) { 80 repaint(); 81 } 82 }