sábado, 26 de enero de 2008

Dominados por el tiempo

Hoy presentamos el sistema para medir el tiempo en el que nos basaremos. Para ello, utilizamos la clase de java System.currentTimeMillis, que nos provee el tiempo del reloj del sistema, en milisegundos.

Aquí podemos ver el fragmento de código mediante el que podemos medir el tiempo en el menu principal, acumulandolo en caso de cerrar el juego.

private Button.OnClickListener btnSetWallpaperListener = new Button.OnClickListener(){
public void onClick(View v){updateTime(initialTime);}
};
public void update(){
if (mode == GameView.MODE_READY) {
updateTime(initialTime);
}
updateHandler.sleep(TIME_TO_SLEEP);
}
public long updateTime(long timeInitial){
long sixty = 60;
now = System.currentTimeMillis();
long time = ( now-initialTime) / 1000 ;
String total_time;
if(time < total_time =" (Long.toString(time)">= 60.0 && time < min =" (" sec =" (" total_time =" Long.toString(min)" hour =" (time/sixty);" min =" (" sec =" (" total_time =" Long.toString(hour)">

Básicamente, en este código vemos como recogemos la hora del sistema y la tratamos para medir el tiempo transcurrido. Esto lo hacemos utilizando un tiempo de referencia al iniciar el juego (evento super.onCreate, tiempo initialTime) y lo comparamos con los tiempos que vamos recogiendo en los instantes en que pulsamos el botón Actualizar correspondiente de cada Actividad (evento onClickListener, tiempo Now).

Podreís ver los resultados técnicos en el siguiente video:



El problema principal encontrado a la hora de gestionar el tiempo es como acumular el tiempo pese a los cambios de Actividad (pantallas) y entrada en subactividades, dónde debemos de acabar como realizar la programación para que no se inicialice la cuenta de tiempo cada vez que se entra en una pantalla.

Seguimos trabajando en ello.

Saludos


No hay comentarios: