1. import java.awt.event.ActionEvent;
  2. import java.awt.event.ActionListener;
  3. import java.awt.event.KeyAdapter;
  4. import java.awt.event.KeyEvent;
  5.  
  6. import javax.swing.Timer;
  7.  
  8. public class Controller extends KeyAdapter implements ActionListener {
  9.     Timer loop;
  10.  
  11.     Booby booby;
  12.  
  13.     boolean right;
  14.     boolean left;
  15.     boolean up;
  16.     boolean down;
  17.  
  18.     int countUp = 0;
  19.     int jump = 0;
  20.     int countLeft = 0;
  21.     int countRight = 0;
  22.  
  23.     Controller(Booby b, View v) {
  24.         booby = b;
  25.         loop = new Timer(0, this);
  26.     }
  27.  
  28.     // Key events
  29.     public void keyPressed(KeyEvent e) {
  30.         int code = e.getKeyCode();
  31.         switch (code) {
  32.         case KeyEvent.VK_UP:
  33.             up = true;
  34.             loop.start();
  35.             break;
  36.  
  37.         case KeyEvent.VK_RIGHT:
  38.             right = true;
  39.             left = false;
  40.             loop.start();
  41.             break;
  42.  
  43.         case KeyEvent.VK_LEFT:
  44.             left = true;
  45.             right = false;
  46.             loop.start();
  47.             break;
  48.  
  49.         case KeyEvent.VK_DOWN:
  50.             left = false;
  51.             booby.movingLeft = false;
  52.             right = false;
  53.             booby.movingRight = false;
  54.             down = true;
  55.             break;
  56.         }
  57.     }
  58.    
  59.  
  60.     public void actionPerformed(ActionEvent evt) {
  61.         if (up) {
  62.  
  63.             booby.movingUp = true;
  64.             countUp++;
  65.             jump++;
  66.  
  67.             if (countUp <= 50 && countUp > 0) {
  68.                 booby.move(0, -1);
  69.  
  70.                 if (right) {
  71.                     booby.movingRight = true;
  72.                 }
  73.                 if (left) {
  74.                     booby.movingLeft = true;
  75.                 }
  76.             }
  77.  
  78.             else if (countUp > 50) {
  79.                 if (jump <= 100) {
  80.                     booby.move(0, 1);
  81.                 } else if (jump > 100) {
  82.                     loop.stop();
  83.                     right = false;
  84.                     left = false;
  85.                     down = false;
  86.                     booby.movingRight = false;
  87.                     booby.movingLeft = false;
  88.                     booby.movingUp = false;        
  89.                     up = false;
  90.                     jump = 0;
  91.                     countUp = 0;
  92.                 }
  93.             }
  94.  
  95.             if (booby.movingRight) {
  96.                 booby.move(1, 0);
  97.             }
  98.  
  99.             if (booby.movingLeft) {
  100.                 booby.move(-1, 0);
  101.             }
  102.  
  103.         }
  104.  
  105.         else if (right) {
  106.             booby.movingLeft = false;      
  107.             booby.movingRight = true;
  108.             countRight++;
  109.             if (countRight <= 100) {
  110.                 booby.move(1, 0);
  111.             } else {
  112.                 countRight = 0;
  113.                 right = false;
  114.                 booby.movingRight = false;
  115.                 loop.stop();
  116.             }
  117.         }
  118.  
  119.         else if (left) {
  120.             booby.movingRight = false;     
  121.             booby.movingLeft = true;
  122.             countLeft++;
  123.             if (countLeft <= 100) {
  124.                 booby.move(-1, 0);
  125.             } else {
  126.                 countLeft = 0;
  127.                 left = false;
  128.                 booby.movingLeft = false;
  129.                
  130.             }
  131.         }
  132.     }
  133. }