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 }
