Cronometro.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.Color;
8 import java.awt.Graphics;
9 import java.io.FileNotFoundException;
10 import java.io.FileOutputStream;
11 import java.io.IOException;
12 import java.io.ObjectOutputStream;
13 import java.util.Map;
14 import java.util.logging.Level;
15 import java.util.logging.Logger;
16 import javax.swing.JOptionPane;
17
18 /**
19 *
20 * @author lina maria bermudez
21 * @author mario nicolas arcila
22 */
23
24
25 /**
26 * Esta clase es aquella que nos permite generar la cuenta regresiva
27 */
28 public class Cronometro extends ObjetoGrafico implements Runnable {
29
30 Thread cronometro = new Thread();
31 int tiempo = 60;
32 private Lienzo lienzo;
33 private Map<Integer, Puntaje> puntajes;
34 private Puntaje puntaje;
35 private Configuraciones configuraciones;
36
37 /**
38 *
39 * @param x es la ubicacion en X
40 * @param y es la posicion en Y
41 * @param ancho es el ancho de la calavera
42 * @param alto es el alto de la calavera
43 * @param lienzo es una clase en la cual se muestra cada una de las clases graficas
44
45 * @param escuchaVentana Se agrega esta clase a los parametros para poder salvar los puntajes al finalizar la cuenta regresiva
46 * @param puntajes Esta clase contiene el mapa de los puntajes
47 * @param puntaje Contiene el puntaje actual
48 * @param configuraciones Recibe las configuraciones configuradas
49 */
50 public Cronometro(int x, int y, int ancho, int alto, Lienzo lienzo, EscuchaVentana escuchaVentana, Map<Integer, Puntaje> puntajes, Puntaje puntaje, Configuraciones configuraciones) {
51 super(x, y, ancho, alto);
52 this.lienzo = lienzo;
53 this.puntajes = puntajes;
54 this.puntaje = puntaje;
55 this.configuraciones = configuraciones;
56 }
57
58 /**
59 *
60 * @param g es la clase base para todo contexto grafico
61 */
62
63 @Override
64 public void paint(Graphics g) {
65 g.drawString(" " + tiempo, x, y);
66
67 }
68 /**
69 * Este metodo contiene el como actuara el hilo de el tiempo
70 */
71
72 public synchronized void run() {
73 //Configuraciones configuraciones = new Configuraciones();
74
75 if (configuraciones.cronometro == 0) {
76 for (tiempo = 100; tiempo > 0; tiempo--) {
77
78 try {
79 Thread.sleep(250);
80 lienzo.repaint();
81
82 } catch (InterruptedException ex) {
83 Logger.getLogger(Cronometro.class.getName()).log(Level.SEVERE, null, ex);
84 }
85
86
87 }
88 } else {
89 for (tiempo = configuraciones.cronometro; tiempo > 0; tiempo--) {
90
91 try {
92 Thread.sleep(250);
93 lienzo.repaint();
94
95 } catch (InterruptedException ex) {
96 Logger.getLogger(Cronometro.class.getName()).log(Level.SEVERE, null, ex);
97 }
98
99 }
100 }
101 // }
102
103
104
105 JOptionPane.showMessageDialog(null, "Tiempo terminado Su puntaje sera salvado gracias por jugar");
106 System.out.println("Puntajes\n");
107
108 System.err.println("getSet = " + puntajes.keySet());
109
110 System.out.println("Puntajes");
111 for (Puntaje p : puntajes.values()) {
112 System.out.println(p);
113 }
114
115 // frame.add(new Label());
116
117 //System.out.println(p);
118 puntajes.put(puntaje.getCantidad(), puntaje);
119 puntajes.keySet();
120
121
122 try {
123 ObjectOutputStream archivo = new ObjectOutputStream(new FileOutputStream("juego.dat"));
124 archivo.writeObject(puntajes);
125 archivo.close();
126 } catch (FileNotFoundException e) {
127 System.err.println("no existe el archivo");
128 Logger.getLogger(EscuchaVentana.class.getName()).log(Level.SEVERE, null, e);
129 } catch (IOException ex) {
130 Logger.getLogger(EscuchaVentana.class.getName()).log(Level.SEVERE, null, ex);
131 }
132
133
134 System.exit(0);
135
136
137
138 }
139 }
140
141
