Calaveragg1.java
Categorías: CategoryJava | CategoryProgramacion |
1
2 package savetheearthsk;
3
4 import java.awt.Color;
5 import java.awt.Graphics;
6 import java.io.FileInputStream;
7 import java.io.FileNotFoundException;
8 import java.io.IOException;
9 import java.util.ArrayList;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
12 import sun.audio.AudioPlayer;
13 import sun.audio.AudioStream;
14
15 /**
16 *
17 * @author lina maria bermudez
18 * @author mario nicolas arcila
19 */
20 /** Esta clase es aquella que dibuja la calavera principal
21 *
22 *
23 */
24 public class Calaveragg1 extends ObjetoGrafico implements Runnable {
25
26 /**llamar a todas las clases necesarias y definir variables
27 */
28 private Color color;
29 private Pared[] pared;
30 private int cantidad;
31 private Lienzo lienzo;
32 private Puntaje puntaje;
33 private ArrayList<Calaveragg1> calaveras;
34 private boolean caminando = true;
35 private AudioStream colorColicion;
36 private AudioStream CColicion;
37
38 /**
39 * Generar construtora de la Calaveragg1 para inicializar los parametros
40 * @param x es la ubicacion en X
41 * @param y es la posicion en Y
42 * @param ancho es el ancho de la calavera
43 * @param alto es el alto de la calavera
44 * @param color es el color que tomas las calaberas
45 * @param paredes es el causante de las coliciones entre calaberas y el
46 * @param lienzo es una clase en la cual se muestra cada una de las clases graficas
47 * @param calaveras es el arreglo de calaveras que usamos para jugar
48 * @param puntaje Clase puntaje para ir aumentando el puntaje X la eliminacion de cada calavera
49 */
50 public Calaveragg1(int x, int y, int ancho, int alto, Color color, Pared[] paredes, Lienzo lienzo, ArrayList<Calaveragg1> calaveras, Puntaje puntaje) {
51 super(x, y, ancho, alto);
52 this.color = color;
53 this.pared = paredes;
54 this.puntaje = puntaje;
55 this.lienzo = lienzo;
56 this.calaveras = calaveras;
57 }
58
59 /** Es el metodo para pintar la pared
60 * @param g es la clase base para todo contexto grafico
61 *
62 */
63 public void paint(Graphics g) {
64 if (visible) {
65 //cabeza
66 g.setColor(color);
67 g.fillOval(x + 0 * ancho / 210, y + 0 * alto / 240, 210 * ancho / 210, 210 * alto / 240);
68 //ojo derecho
69 g.setColor(Color.BLACK);
70 g.fillOval(x + 50 * ancho / 210, y + 110 * alto / 240, 30 * ancho / 210, 30 * alto / 240);
71 //ojo izquierdo
72 g.setColor(Color.BLACK);
73 g.fillOval(x + 110 * ancho / 210, y + 110 * alto / 240, 30 * ancho / 210, 30 * alto / 240);
74 //diente 1
75 g.setColor(color);
76 g.fillOval(x + 20 * ancho / 210, y + 180 * alto / 240, 50 * ancho / 210, 50 * alto / 240);
77 //diente 2
78 g.setColor(color);
79 g.fillOval(x + 70 * ancho / 210, y + 190 * alto / 240, 50 * ancho / 210, 50 * alto / 240);
80 // diente 3
81 g.setColor(color);
82 g.fillOval(x + 120 * ancho / 210, y + 180 * alto / 240, 50 * ancho / 210, 50 * alto / 240);
83
84 }
85 }
86
87 /**retorna el color
88 *
89 */
90 public Color getColor() {
91 return color;
92 }
93 /**
94 *
95 * @param color Metodo para implmentarle el color a las calaveras
96 */
97 public void setColor(Color color) {
98 this.color = color;
99 }
100
101
102
103 /** es el que por medio de unos hilos hace mover las calaveras */
104 public synchronized void run() {
105 for (; getVisible();) {
106 if (caminando) {
107 decY(2);
108
109 for (int i = 0; i < Pared.length; i++) {
110 decY(1);
111 if (this.colisiona(pared[i]) == true) {
112 }
113
114 }
115
116 for (Calaveragg1 calaveragg1 : calaveras) {
117 if (this.colisiona(calaveragg1)) {
118
119 if (color == calaveragg1.getColor()) {
120 setVisible(false);
121 calaveragg1.setVisible(false);
122 try {
123 colorColicion = new AudioStream(new FileInputStream("cañon.wav"));
124 // Create an AudioStream object from the input stream.
125
126 } catch (FileNotFoundException ex) {
127 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
128 } catch (IOException ex) {
129 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
130 }
131
132 AudioPlayer.player.start(colorColicion);
133
134 puntaje.sumar();
135
136 if (cantidad > 200) {
137 Ganar gano = new Ganar(300, 350, 100, 50);
138 lienzo.add(gano);
139 }
140
141 } else {
142 caminando = false;
143 try {
144 CColicion = new AudioStream(new FileInputStream("poto.wav"));
145 // Create an AudioStream object from the input stream.
146
147 } catch (FileNotFoundException ex) {
148 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
149 } catch (IOException ex) {
150 Logger.getLogger(EscuchaMouse.class.getName()).log(Level.SEVERE, null, ex);
151 }
152
153 AudioPlayer.player.start(CColicion);
154 }
155 }
156
157 }
158
159 try {
160 Thread.sleep(5);
161
162 } catch (InterruptedException ex) {
163 Logger.getLogger(Calaveragg1.class.getName()).log(Level.SEVERE, null, ex);
164 }
165 }
166
167 lienzo.repaint();
168 }
169 }
170
171 /** metodo para agregar la suma de los puntajes */
172 public void sumar() {
173 cantidad += 200;
174
175 }
176
177 /** envia la suma en cantidad exacta
178 */
179 public int getCantidad() {
180 return cantidad;
181
182
183 }
184 /** devuelve el valor de caminando para conocer si, si esta caminando o no */
185 public boolean caminanB = true;
186 }
187
