Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: josco en 26 Junio 2010, 19:58 PM

Título: [SOLUCIONADO]como usuar varios hilos en una clase??
Publicado por: josco en 26 Junio 2010, 19:58 PM
hola que tal estoy haceindo un jueguillo, entonces tengo un juego que hice que usa un hilo principal para mover el juego este es el metodo run:

Código (java) [Seleccionar]
public void run() {
     Graphics g = getGraphics();
   
   // ciclo principal del juego
   while (!sleeping) {
     
     update();
     dibujar(g);
     try {
       Thread.sleep(33);
     }
     catch (InterruptedException ie) {}
   }


pero quiero ponerle al juego, algo asi como un cronometro, pero eso seria otro hilo que envez de que se duerma 33, se duerma 1000 (un segundo). pero que solo afecte al cronometro.

como le puedo hacer?? :huh: :huh: :huh:

DEBCI-Intenta poner el code con etiquetas geshi de java.
Título: Re: como usuar varios hilos en una clase??
Publicado por: Leyer en 26 Junio 2010, 20:09 PM
Puedes hacerlo de varias formas

     
Código (java) [Seleccionar]
   Thread thread = null;
        Runnable runnable = new Runnable() {
@Override
public synchronized void run() {

}
};;
thread = new Thread(runnable);
thread.start();


      
Código (java) [Seleccionar]

new Thread(new Runnable() {
@Override
public void run() {

}
});
Título: Re: como usuar varios hilos en una clase??
Publicado por: Debci en 26 Junio 2010, 20:45 PM
Cita de: LEYER en 26 Junio 2010, 20:09 PM
Puedes hacerlo de varias formas

     
Código (java) [Seleccionar]
   Thread thread = null;
        Runnable runnable = new Runnable() {
@Override
public synchronized void run() {

}
};;
thread = new Thread(runnable);
thread.start();


      
Código (java) [Seleccionar]

new Thread(new Runnable() {
@Override
public void run() {

}
});

Creo que es mas sencillo:

Código (java) [Seleccionar]

public class HiloCronometro extends Thread
{
public HiloCronometro(int dato)
{
//Prototipo creado por si quieres compartirle datos al thread facilmente
//En el cuerpo del prototipo podemos incializar datos, convertirlos...
}
public void run()
{
//Cuerpo de ejecucion del thread
}
}


Y para arrancarlo:

Código (java) [Seleccionar]

HiloCronometro crono = new HiloCronometro();
crono.start();

Y tendremos un proceso de baja prioridad corriendo paralelamente a nuestro programa.

Saludos
Título: Re: como usuar varios hilos en una clase??
Publicado por: josco en 26 Junio 2010, 21:17 PM
gracias ya pude  ;D ;D ;D aunque no se si lo implemente bien pero funciona lo que hice fue hacer la clase  HiloCronometro asi

public class HiloCronometro extends Thread
{
  private int time;
  public HiloCronometro(int timeh)
  {
      time = timeh;

   //Prototipo creado por si quieres compartirle datos al thread facilmente
   //En el cuerpo del prototipo podemos incializar datos, convertirlos...
  }
  public void run()
  {
    while(1>0)
        try {
        Thread.sleep(1000);
        time++;
      }
      catch (InterruptedException ie) {}
  }
  public int mandar()
  {
    return time;
  }
}


y en la clase del juego en el metodo run


HiloCronometro crono = new HiloCronometro(time);
public void run() {
      crono.start();
      Graphics g = getGraphics();//declaramos g para obtener graficos y mandarla
     
    // ciclo principal del juego
    while (!sleeping) {
     
      update();
      dibujar(g);
      try {
        Thread.sleep(frameDelay);     
        time = crono.mandar(); 
      }
      catch (InterruptedException ie) {}
    }
   }
Título: Re: como usuar varios hilos en una clase??
Publicado por: Debci en 26 Junio 2010, 21:20 PM
Veo que te fue mi metodo jeje, es mas sencillo que el que propone LEYER, pero tambien es interesante aprender a usar la interfaz Runnable.

Saludos

PD:Dale un quote de solucionado en el titulo.
Título: Re: como usuar varios hilos en una clase?? solucionado
Publicado por: egyware en 1 Julio 2010, 15:12 PM
Disculpan que responda el tema solucionado, pero deseo opinar algo.

CitarExisten buenos juegos que usan solo un thread.

Saludos!!
Título: Re: como usuar varios hilos en una clase?? solucionado
Publicado por: Debci en 1 Julio 2010, 18:17 PM
Cita de: egyware en  1 Julio 2010, 15:12 PM
Disculpan que responda el tema solucionado, pero deseo opinar algo.

CitarExisten buenos juegos que usan solo un thread.

Saludos!!
Por supuesto ;)

Cierro tema, creo que no hay mas que decir.

Saludos