Bala.java
Categorías: CategoryJava | CategoryProgramacion |
1 /**
2 *@author Elkin Andrey Garzón Alarcón...Geek Master
3 *@author Ingrid Lorena Guerrero Mayorga...
4 *@author Jefferson Fabian Idarraga Idarraga Pinilla...
5 */
6 package pinguinogg;
7
8 import java.awt.Color;
9 import java.awt.Graphics;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
12 import sun.java2d.loops.FillRect;
13 /*
14 *Se crea la clase Bala
15 */
16 public class Bala extends ObjetoGrafico implements Runnable {
17
18 private Lienzo lienzo;
19 private Cabeza[][] cabeza;
20 private PuntajeVidas puntaje;
21
22 /*
23 *Se añade la bala a lienzo para mirarlo en su ejecucion
24 */
25 public Bala(int x, int y, int ancho, int alto, Lienzo li, Cabeza[][] cabeza,PuntajeVidas puntaje) {
26 super(x, y, ancho, alto);
27 lienzo = li;
28 this.cabeza = cabeza;
29 this.puntaje = puntaje;
30
31 }
32 /*
33 *Se crea la bala con sus respectibas cordenadas
34 */
35
36 public void paint(Graphics g) {
37
38 if (visible) {
39
40
41 g.setColor(new Color(50, 56, 58));
42 g.fillOval(x + 0 * ancho / 140, y + 0 * alto / 180, 140 * ancho / 140, 70 * alto / 180);
43
44
45 // casquito
46 g.setColor(new Color(167, 177, 182));
47 int[] casco1X = {
48 x + 0 * ancho / 130,
49 x + 0 * ancho / 130,
50 x + 130 * ancho / 130,
51 x + 130 * ancho / 130,};
52 int[] casco1Y = {
53 y + 40 * alto / 180,
54 y + 180 * alto / 180,
55 y + 180 * alto / 180,
56 y + 40 * alto / 180,};
57 g.fillPolygon(casco1X, casco1Y, 4);
58
59 //borde del casquito
60 g.setColor(new Color(4, 4, 4));
61 int[] casco2X = {
62 x + 0 * ancho / 130,
63 x + 0 * ancho / 130,
64 x + 130 * ancho / 130,
65 x + 130 * ancho / 130,};
66 int[] casco2Y = {
67 y + 150 * alto / 180,
68 y + 180 * alto / 180,
69 y + 180 * alto / 180,
70 y + 150 * alto / 180,};
71 g.fillPolygon(casco2X, casco2Y, 4);
72
73
74 }
75
76
77 }
78
79 /*
80 *Se crea el movimiento de la bala
81 */
82 public void run() {
83
84 for (;;) {
85
86 decy(10);
87 if (y > 800) {
88 y = 800;
89
90 }
91 /*Se crea la colicion de cabeza con bala
92 *haciendo q la cabeza desaparesca */
93 for (int i = 0; i < cabeza.length; i++) {
94 for (int j = 0; j < cabeza[i].length; j++) {
95 if (this.colisiona(cabeza[i][j])) {
96 cabeza[i][j].setVisible(false);
97 setVisible(false);
98 puntaje.add(10);
99 }
100
101 }
102
103 }
104 /*
105 *Este es el "repaint" de disparo de las balas
106 *el cual usa el try y el catch
107 */
108 lienzo.repaint();
109 try {
110 Thread.sleep(100);
111 } catch (InterruptedException ex) {
112 Logger.getLogger(Bala.class.getName()).log(Level.SEVERE, null, ex);
113 }
114 }
115 }
116
117 /*
118 *Se crea un constructor para la cabeza
119 */
120 private boolean colisiona(Cabeza[][] cabeza) {
121 throw new UnsupportedOperationException("Not yet implemented");
122 }
123 }
