1 36 37 40 41 import java.awt.event.*; 42 import java.awt.*; 43 44 public class JumpingBox extends java.applet.Applet 45 implements MouseListener, MouseMotionListener, ComponentListener { 46 47 private int mx, my; 48 private Dimension size; 49 private int onaroll; 50 51 public void init() { 52 onaroll = 0; 53 setSize(500, 500); 54 size = getSize(); 55 addMouseListener(this); 56 addMouseMotionListener(this); 57 addComponentListener(this); 58 } 59 60 public void update(Graphics g) { 61 Dimension newSize = getSize(); 62 if (size.equals(newSize)) { 63 g.setColor(getBackground()); 65 g.drawRect(mx, my, (size.width / 10) - 1, 66 (size.height / 10) - 1); 67 } else { 68 size = newSize; 69 g.clearRect(0, 0, size.width, size.height); 70 } 71 mx = (int) (Math.random() * 1000) % 73 (size.width - (size.width / 10)); 74 my = (int) (Math.random() * 1000) % 75 (size.height - (size.height / 10)); 76 paint(g); 77 } 78 79 public void paint(Graphics g) { 80 g.setColor(Color.black); 81 g.drawRect(0, 0, size.width - 1, size.height - 1); 82 g.drawRect(mx, my, (size.width / 10) - 1, 83 (size.height / 10) - 1); 84 } 85 86 89 public void mouseDragged(MouseEvent e) {} 90 91 public void mouseMoved(MouseEvent e) { 92 e.consume(); 93 if ((e.getX() % 3 == 0) && (e.getY() % 3 == 0)) { 94 repaint(); 95 } 96 } 97 98 public void mousePressed(MouseEvent e) { 99 int x = e.getX(); 100 int y = e.getY(); 101 e.consume(); 102 requestFocus(); 103 if (mx < x && x < mx + getSize().width / 10 - 1 && 104 my < y && y < my + getSize().height / 10 - 1) { if (onaroll > 0) { switch (onaroll%4) { case 0: 108 play(getCodeBase(), 109 "sounds/tiptoe.thru.the.tulips.au"); 110 break; 111 case 1: 112 play(getCodeBase(), "sounds/danger.au"); 113 break; 114 case 2: 115 play(getCodeBase(), "sounds/adapt-or-die.au"); 116 break; 117 case 3: 118 play(getCodeBase(), "sounds/cannot.be.completed.au"); 119 break; 120 } 121 onaroll++; 122 if (onaroll > 5) { 123 getAppletContext() 124 .showStatus("You're on your way to THE HALL OF FAME:" 125 + onaroll + "Hits!"); 126 } else { 127 getAppletContext().showStatus("YOU'RE ON A ROLL:" 128 + onaroll + "Hits!"); 129 } 130 } else { getAppletContext().showStatus("HIT IT AGAIN! AGAIN!"); 132 play(getCodeBase(), "sounds/that.hurts.au"); 133 onaroll = 1; 134 } 135 } else { getAppletContext().showStatus("You hit nothing at (" + x + ", " 137 + y + "), exactly"); 138 play(getCodeBase(), "sounds/thin.bell.au"); 139 onaroll = 0; 140 } 141 repaint(); 142 } 143 144 public void mouseReleased(MouseEvent e) {} 145 146 public void mouseEntered(MouseEvent e) { 147 repaint(); 148 } 149 150 public void mouseExited(MouseEvent e) { 151 repaint(); 152 } 153 154 public void mouseClicked(MouseEvent e) {} 155 156 public void componentHidden(ComponentEvent e) {} 157 158 public void componentMoved(ComponentEvent e) {} 159 160 public void componentResized(ComponentEvent e) { 161 repaint(); 162 } 163 164 public void componentShown(ComponentEvent e) { 165 repaint(); 166 } 167 168 public void destroy() { 169 removeMouseListener(this); 170 removeMouseMotionListener(this); 171 } 172 173 public String getAppletInfo() { 174 return "Title: JumpingBox\n" 175 + "Author: Anonymous"; 176 } 177 } 178 | Popular Tags |