Advertisement
Jnk1296

Space Invaders - Input

Mar 1st, 2013
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.99 KB | None | 0 0
  1. package net.jnk.Unknown;
  2.  
  3. import java.awt.event.FocusEvent;
  4. import java.awt.event.FocusListener;
  5. import java.awt.event.KeyEvent;
  6. import java.awt.event.KeyListener;
  7.  
  8. public class Input implements KeyListener, FocusListener{
  9.  
  10.     public static boolean[] buttons = new boolean[32];
  11.    
  12.     private static final int LEFT = 0;
  13.     private static final int RIGHT = 1;
  14.     private static final int FIRE = 2;
  15.     private static final int EXIT = 3;
  16.     private static final int DEBUG = 4;
  17.    
  18.     @Override
  19.     public void keyPressed(KeyEvent e) {
  20.         try {
  21.             int button = -1;
  22.            
  23.             int keyID = e.getKeyCode();
  24.            
  25.             if (keyID == KeyEvent.VK_A) button = LEFT;
  26.             if (keyID == KeyEvent.VK_LEFT) button = LEFT;
  27.             if (keyID == KeyEvent.VK_D) button = RIGHT;
  28.             if (keyID == KeyEvent.VK_RIGHT) button = RIGHT;
  29.             if (keyID == KeyEvent.VK_SPACE) button = FIRE;
  30.             if (keyID == KeyEvent.VK_ESCAPE) button = EXIT;
  31.             if (keyID == KeyEvent.VK_F3) button = DEBUG;
  32.            
  33.             buttons[button] = true;
  34.         } catch(ArrayIndexOutOfBoundsException ex) {
  35.             // Ignore the error
  36.         }
  37.     }
  38.  
  39.     @Override
  40.     public void keyReleased(KeyEvent e) {
  41.         try {
  42.             int button = -1;
  43.            
  44.             int keyID = e.getKeyCode();
  45.            
  46.             if (keyID == KeyEvent.VK_A) button = LEFT;
  47.             if (keyID == KeyEvent.VK_LEFT) button = LEFT;
  48.             if (keyID == KeyEvent.VK_D) button = RIGHT;
  49.             if (keyID == KeyEvent.VK_RIGHT) button = RIGHT;
  50.             if (keyID == KeyEvent.VK_SPACE) button = FIRE;
  51.             if (keyID == KeyEvent.VK_ESCAPE) button = EXIT;
  52.             if (keyID == KeyEvent.VK_F3) button = DEBUG;
  53.            
  54.             buttons[button] = false;
  55.         } catch(ArrayIndexOutOfBoundsException ex) {
  56.             // Ignore the error
  57.         }
  58.     }
  59.  
  60.     public void releaseAllKeys() {
  61.         for(int i = 0; i < buttons.length; i++) {
  62.             buttons[i] = false;
  63.         }
  64.     }
  65.    
  66.     @Override
  67.     public void keyTyped(KeyEvent arg0) {  
  68.     }
  69.  
  70.     @Override
  71.     public void focusGained(FocusEvent e) {
  72.         Elements.hasFocus = true;
  73.     }
  74.  
  75.     @Override
  76.     public void focusLost(FocusEvent arg0) {
  77.         Elements.hasFocus = false;
  78.         releaseAllKeys();
  79.     }  
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement