EscuchaTeclasII.java

Categorías: CategoryJava | CategoryProgramacion

   1 /*
   2  * To change this template, choose Tools | Templates
   3  * and open the template in the editor.
   4  */
   5 package savetheearthsk;
   6 
   7 import java.awt.event.KeyEvent;
   8 import java.awt.event.KeyListener;
   9 import java.io.IOException;
  10 import java.io.PrintStream;
  11 import java.net.Socket;
  12 import java.net.UnknownHostException;
  13 import java.util.ArrayList;
  14 import java.util.logging.Level;
  15 import java.util.logging.Logger;
  16 
  17 /**
  18  *Esta clase permite asignar procesos a la activacion de las teclas en tiempo de ejecucion
  19  * @author Luisa Fernanda Ruerda Herrera
  20  * @author George Sebastian Parra Macias
  21  */
  22 public class EscuchaTeclasII implements KeyListener {
  23 
  24     public static final int puerto = 9999;
  25     private CanonCliente canoncliente;
  26     private Configuracion infoconf;
  27     Socket socket;
  28     private boolean caminarb = false;
  29     private Lienzo lienzo;
  30     private static Pared[] paredes;
  31     private Pared[] pared;
  32     private Puntaje puntaje;
  33     private Pared[] paredes1;
  34     private Pared[] paredes2;
  35     private Pared[] paredes3;
  36     private Calaveragg1 calaveragg1;
  37     private ArrayList<Calaveragg1> calaveras;
  38     private CanonCliente canonCliente;
  39     private int dir;
  40 /**
  41  * Constructor de  EscuchaTeclas que recibe los parametros que corresponden a los atributos privados
  42  * @param l
  43  * @param pared
  44  * @param paredes1
  45  * @param paredes2
  46  * @param paredes3
  47  * @param calaveras
  48  * @param puntaje
  49  * @param canonCliente
  50  * @param calaveragg1
  51  * @param infoconf
  52  */
  53     public EscuchaTeclasII(Lienzo l, Pared[] pared, Pared[] paredes1, Pared[] paredes2, Pared[] paredes3, ArrayList<Calaveragg1> calaveras, Puntaje puntaje, CanonCliente canonCliente, Calaveragg1 calaveragg1, Configuracion infoconf) {
  54         this.canoncliente = canonCliente;
  55         this.infoconf = infoconf;
  56         this.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.calaveragg1 = calaveragg1;
  64 
  65 /**
  66  *excepcion para asignar  un valor al Socket si este existe
  67  */
  68         try {
  69             socket = new Socket(infoconf.direccionIP, puerto);
  70         } catch (UnknownHostException ex) {
  71             System.err.println("Error al abrir el socker cliente");
  72             Logger.getLogger(EscuchaTeclasII.class.getName()).log(Level.SEVERE, null, ex);
  73         } catch (IOException ex) {
  74             System.err.println("Error IO al abrir el socker cliente");
  75             Logger.getLogger(EscuchaTeclasII.class.getName()).log(Level.SEVERE, null, ex);
  76         }
  77 
  78 
  79 
  80 
  81     }
  82 
  83     public void keyTyped(KeyEvent e) {
  84         throw new UnsupportedOperationException("Not supported yet.");
  85     }
  86 /**
  87  * funciona para volver entero el codigo ingresado
  88  * es el metodo para recivir las teclas de cada objeto
  89  * @param  e recibe un MouseEvent
  90  */
  91     public void keyPressed(KeyEvent e) {
  92         int tecla = e.getKeyCode();
  93         switch (tecla) {
  94 
  95             case KeyEvent.VK_RIGHT:
  96                 canonCliente.incX(10);
  97 
  98                 if (caminarb == false && calaveragg1 != null) {
  99                     calaveragg1.incX(10);
 100                 }
 101                 for (int i = 0; i < paredes3.length; i++) {
 102                     if (canonCliente.colisiona(paredes3[i])) {
 103                         canonCliente.decX(10);
 104                     }
 105                 }
 106                 lienzo.repaint();
 107                 break;
 108             case KeyEvent.VK_LEFT:
 109                 canonCliente.decX(10);
 110 
 111 
 112                 //calaveragg1.decX(10);
 113                 if (calaveragg1 != null && caminarb == false) {
 114                     calaveragg1.decX(10);
 115                 }
 116                 for (int i = 0; i < paredes2.length; i++) {
 117                     if (canonCliente.colisiona(paredes2[i])) {
 118                         canonCliente.incX(10);
 119                     }
 120                 }
 121                 lienzo.repaint();
 122                 break;
 123             case KeyEvent.VK_DOWN:
 124                 canonCliente.incY(10);
 125                 for (int i = 0; i < paredes1.length; i++) {
 126                     if (canonCliente.colisiona(paredes1[i])) {
 127                         canonCliente.decY(10);
 128                     }
 129                 }
 130                 lienzo.repaint();
 131                 break;
 132             case KeyEvent.VK_UP:
 133                 switch (canonCliente.getDireccion()) {
 134                     case 1:
 135                         this.calaveragg1 = new Calaveragg1(canonCliente.x + 12, canonCliente.y - 65, 70, 70, Constantes.colores[(int) (Math.random() * 3)], paredes, paredes1, paredes2, paredes3, lienzo, calaveras, puntaje, infoconf);
 136                         calaveragg1.irCentro();
 137                         break;
 138                     case 0:
 139                         this.calaveragg1 = new Calaveragg1(canonCliente.x - 50, canonCliente.y - 30, 70, 70, Constantes.colores[(int) (Math.random() * 3)], paredes, paredes1, paredes2, paredes3, lienzo, calaveras, puntaje, infoconf);
 140                         calaveragg1.irIzquierda();
 141                         break;
 142                     case 2:
 143                         this.calaveragg1 = new Calaveragg1(canonCliente.x + 90, canonCliente.y - 20, 70, 70, Constantes.colores[(int) (Math.random() * 3)], paredes, paredes1, paredes2, paredes3, lienzo, calaveras, puntaje, infoconf);
 144                         calaveragg1.irDerecha();
 145                         break;
 146                 }
 147                 calaveras.add(calaveragg1);
 148                 lienzo.add(calaveragg1);
 149                 lienzo.repaint();
 150                 break;
 151             case ' ':
 152 
 153                 Thread hiloCalaveragg1 = new Thread(calaveragg1);
 154                 if (calaveragg1 == null) {
 155                 } else {
 156                     hiloCalaveragg1.start();
 157 
 158                 }
 159 
 160                 lienzo.repaint();
 161                 caminarb = false;
 162                 break;
 163 
 164             case 'A':
 165             case 'a':
 166                 canonCliente.irIzquierda();
 167                 lienzo.repaint();
 168                 break;
 169             case 'S':
 170             case 's':
 171                 canonCliente.irCentro();
 172                 lienzo.repaint();
 173                 break;
 174             case 'D':
 175             case 'd':
 176                 canonCliente.irDerecha();
 177 
 178                 lienzo.repaint();
 179                 break;
 180 
 181 
 182         }
 183     }
 184 
 185     public void keyReleased(KeyEvent e) {
 186         throw new UnsupportedOperationException("Not supported yet.");
 187     }
 188 }

Java/Programas/SaveTheEarthII/EscuchaTeclasII.java (last edited 2010-10-28 12:18:29 by GeorgeParra)