EscuchaTeclas.java

Categorías: CategoryJava | CategoryProgramacion

   1 package savetheearthsk;
   2 
   3 import java.awt.event.KeyEvent;
   4 import java.awt.event.KeyListener;
   5 import java.util.ArrayList;
   6 
   7 /**
   8  *Esta clase permite asignar procesos a la activacion de las teclas en tiempo de ejecucion
   9  * @author Luisa Fernanda Ruerda Herrera
  10  * @author George Sebastian Parra Macias
  11  */
  12 public class EscuchaTeclas implements KeyListener {
  13 
  14     /**
  15      * Atributo privado de tipo booleano que permite el movimiento de la calavera
  16      */
  17     private boolean caminarb = false;
  18     /**
  19      * Atributo privado de tipo Lienzo que recibe el lienzo desde el Main
  20      */
  21     private Lienzo lienzo;
  22     /**
  23      * Atributo privado de tipo Pared (constante) que guarda un arreglo de Pared
  24      */
  25     private static Pared[] paredes;
  26     /**
  27      * Atributo privado de tipo Pared que guarda un arreglo de Pared
  28      */
  29     private Pared[] pared;
  30     /**
  31      * Atributo privado de tipo Puntaje que guarda el puntaje
  32      */
  33     private Puntaje puntaje;
  34     private Pared[] paredes1;
  35     private Pared[] paredes2;
  36     private Pared[] paredes3;
  37     private Calaveragg1 calaveragg1;
  38     private ArrayList<Calaveragg1> calaveras;
  39     private Canon canon;
  40     private int dir;
  41     private Configuracion configuracion;
  42 /**
  43  * Constructor de  EscuchaTeclas que recibe los parametros que corresponden a los atributos privados
  44  * @param l
  45  * @param pared
  46  * @param paredes1
  47  * @param paredes2
  48  * @param paredes3
  49  * @param calaveras
  50  * @param puntaje
  51  * @param canon
  52  * @param calaveragg1
  53  * @param config
  54  */
  55     public EscuchaTeclas(Lienzo l, Pared[] pared, Pared[] paredes1, Pared[] paredes2, Pared[] paredes3, ArrayList<Calaveragg1> calaveras, Puntaje puntaje, Canon canon, Calaveragg1 calaveragg1, Configuracion config) {
  56         lienzo = l;
  57         this.puntaje = puntaje;
  58         this.pared = pared;
  59         this.paredes1 = paredes1;
  60         this.paredes2 = paredes2;
  61         this.paredes3 = paredes3;
  62         this.calaveras = calaveras;
  63         this.canon = canon;
  64         this.calaveragg1 = calaveragg1;
  65         this.configuracion = config;
  66 
  67     }
  68 
  69     public void keyTyped(KeyEvent e) {
  70     }
  71 /**
  72  * funciona para volver entero el codigo ingresado
  73  * es el metodo para recivir las teclas de cada objeto
  74  * @param  e recibe un MouseEvent
  75  */
  76     public void keyPressed(KeyEvent e) {
  77         if (configuracion.teclado == false) {
  78 
  79 
  80             int tecla = e.getKeyCode();
  81             switch (tecla) {
  82 
  83                 case KeyEvent.VK_RIGHT:
  84                     canon.incX(10);
  85 
  86                     if (caminarb == false && calaveragg1 != null) {
  87                         calaveragg1.incX(10);
  88                     }
  89                     for (int i = 0; i < paredes3.length; i++) {
  90                         if (canon.colisiona(paredes3[i])) {
  91                             canon.decX(10);
  92                         }
  93                     }
  94                     lienzo.repaint();
  95                     break;
  96                 case KeyEvent.VK_LEFT:
  97                     canon.decX(10);
  98 
  99 
 100                     //calaveragg1.decX(10);
 101                     if (calaveragg1 != null && caminarb == false) {
 102                         calaveragg1.decX(10);
 103                     }
 104                     for (int i = 0; i < paredes2.length; i++) {
 105                         if (canon.colisiona(paredes2[i])) {
 106                             canon.incX(10);
 107                         }
 108                     }
 109                     lienzo.repaint();
 110                     break;
 111                 case KeyEvent.VK_DOWN:
 112                     canon.incY(10);
 113                     for (int i = 0; i < paredes1.length; i++) {
 114                         if (canon.colisiona(paredes1[i])) {
 115                             canon.decY(10);
 116                         }
 117                     }
 118                     lienzo.repaint();
 119                     break;
 120                 case KeyEvent.VK_UP:
 121                     switch (canon.getDireccion()) {
 122                         case 1:
 123                             this.calaveragg1 = new Calaveragg1(canon.x + 12, canon.y - 65, 70, 70, Constantes.colores[(int) (Math.random() * 3)], paredes, paredes1, paredes2, paredes3, lienzo, calaveras, puntaje, configuracion);
 124                             calaveragg1.irCentro();
 125                             break;
 126                         case 0:
 127                             this.calaveragg1 = new Calaveragg1(canon.x - 50, canon.y - 30, 70, 70, Constantes.colores[(int) (Math.random() * 3)], paredes, paredes1, paredes2, paredes3, lienzo, calaveras, puntaje, configuracion);
 128                             calaveragg1.irIzquierda();
 129                             break;
 130                         case 2:
 131                             this.calaveragg1 = new Calaveragg1(canon.x + 90, canon.y - 20, 70, 70, Constantes.colores[(int) (Math.random() * 3)], paredes, paredes1, paredes2, paredes3, lienzo, calaveras, puntaje, configuracion);
 132                             calaveragg1.irDerecha();
 133                             break;
 134                     }
 135                     calaveras.add(calaveragg1);
 136                     lienzo.add(calaveragg1);
 137                     lienzo.repaint();
 138                     break;
 139                 case ' ':
 140 
 141                     Thread hiloCalaveragg1 = new Thread(calaveragg1);
 142                     if (calaveragg1 == null) {
 143                     } else {
 144                         hiloCalaveragg1.start();
 145 
 146                     }
 147 
 148                     lienzo.repaint();
 149                     caminarb = false;
 150                     break;
 151 
 152                 case 'A':
 153                 case 'a':
 154                     canon.irIzquierda();
 155                     lienzo.repaint();
 156                     break;
 157                 case 'S':
 158                 case 's':
 159                     canon.irCentro();
 160                     lienzo.repaint();
 161                     break;
 162                 case 'D':
 163                 case 'd':
 164                     canon.irDerecha();
 165 
 166                     lienzo.repaint();
 167                     break;
 168 
 169 
 170             }
 171         }
 172 
 173     }
 174 
 175     public void keyReleased(KeyEvent e) {
 176     }
 177 }

Java/Programas/SaveTheEarthII/EscuchaTeclas.java (last edited 2010-10-28 12:17:34 by GeorgeParra)