elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [JAVA] ¿Cómo uso Timers en Java?(J2ME)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [JAVA] ¿Cómo uso Timers en Java?(J2ME)  (Leído 12,756 veces)
zheo


Desconectado Desconectado

Mensajes: 707



Ver Perfil
[JAVA] ¿Cómo uso Timers en Java?(J2ME)
« en: 3 Enero 2005, 04:55 am »

Bueno, estoy haciendo mi primer juego para J2ME, ya tengo hecha toda la interface -funcionando en el movil wink.gif -y me falta hacer el bucle principal del juego, usease, el juego jeje.
Ya tengo planificadas todas las estructuras de datos y algoritmos a usar.
El caso es que sólo me hace falta una cosa para hacer el juego: medir el tiempo.
Ésto es necesario para hacer bajar la ficha una casilla en determinados intervalos, y aquí llega mi duda.
En principio sé que tengo que hacer un objeto de la clase Timer, que será el contador de tiempo, y luego un objeto de la clase TimerTask e implementar su método Run, (ya que implementa el Interface Runnable), que será lo que se ejecute cada determinado lapso de tiempo.

El caso es que no se si lo he entendido bien, TimerTask actua como un Hilo de ejecución, y teniendo en cuenta que lo voy a utilizar dentro de otro hilo (el bucle del juego es otro hilo) no se si eso podría acarrearme problemas de sincronización.
¿Alguien sabe si esta es más o menos la manera correcta de hacerlo? ¿Conoceis algún otro método o forma mejor de hacerlo?

Un saludo y gracias anticipadas.


En línea

Sólo hay 10 tipos de personas: las que saben binario y las que no.

¿Quieres programar un videojuego? Si quieres unirte pulsa aqui
AnKeR

Desconectado Desconectado

Mensajes: 125


printk("\n%s\n","Kernel Panic");


Ver Perfil
Re: [JAVA] ¿Cómo uso Timers en Java?(J2ME)
« Respuesta #1 en: 21 Enero 2005, 12:34 pm »

Buenas....

Yo no suelo utilizar la TimerTask, lo que hago es utilizar la clase Timer únicamente, asiciandole un delay, y un ActionListener, al que llama cuando el delay se acaba. -> Timer(int delay, ActionListener listener) ;     
Me parece una manera mas fácil que la del TimerTask, pero bueno luego puedes hacerlo como quieras.
Sobre los timers en java, pues que a veces dan errores, porque llevan un thread interno, y si paras el thread principal  en el que están pues siguen ejecutandose (el thread interno), pudiendo dar otros problemillas... (cosa que a mi me paso :S ).

Un ejemplo de la API de como funciona:

Código:
int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //...Perform a task...
      }
  };
  new Timer(delay, taskPerformer).start();
Pues eso, suerte con el juego.
Salu2o3


En línea

Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Re: [JAVA] ¿Cómo uso Timers en Java?(J2ME)
« Respuesta #2 en: 21 Enero 2005, 19:22 pm »

Eso es lo que se llama race condition ;) y puede provocar resultados muy impredecibles y sobre todo dañinos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
zheo


Desconectado Desconectado

Mensajes: 707



Ver Perfil
Re: [JAVA] ¿Cómo uso Timers en Java?(J2ME)
« Respuesta #3 en: 22 Enero 2005, 04:26 am »

Se me pasó este hilo, menos mal que Slasher Keeper lo reflotó :P

Bueno, al final lo acabé haciendo de la manera más tradicional:
System.CurrentTimeMillis() y calculando el tiempo transcurrido entre frames :P

El juego es funcinal, de hecho lo tengo en el movil y rula :P
Aunque quiero pulirlo un pocoy  lo presentaré en sociedad xD xD Es que estoy de exámenes :(
A ver si puedo poner unas capturas, pero ahora no tengo tiempo (lo tengo en el portatil y me voy en seguida)
En línea

Sólo hay 10 tipos de personas: las que saben binario y las que no.

¿Quieres programar un videojuego? Si quieres unirte pulsa aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Java/C++] ¿Como pasar un método de c++ a java?
Programación C/C++
klaine 0 3,193 Último mensaje 14 Abril 2011, 02:55 am
por klaine
[Java ME/J2ME] Color de fondo de pantalla
Java
avmiitxe 2 7,264 Último mensaje 20 Julio 2011, 20:29 pm
por o__Near__o
Evitar bloqueo del metodo read() de un objeto Socket en java/j2me
Java
cyber33 3 4,614 Último mensaje 12 Enero 2013, 01:31 am
por juancaa
J2me java me - Como utilizar un Valor recordStore (RMS) como Variable Int.
Java
bgb11 0 1,898 Último mensaje 28 Febrero 2014, 00:56 am
por bgb11
[JAVA] Programa irresoluble en java
Java
Unchained 7 4,199 Último mensaje 6 Abril 2014, 02:40 am
por Unchained
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines