Foro de elhacker.net

Programación => 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
  1. public void run() {
  2.      Graphics g = getGraphics();
  3.  
  4.    // ciclo principal del juego
  5.    while (!sleeping) {
  6.  
  7.      update();
  8.      dibujar(g);
  9.      try {
  10.        Thread.sleep(33);
  11.      }
  12.      catch (InterruptedException ie) {}
  13.    }

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
  1.   Thread thread = null;
  2.        Runnable runnable = new Runnable() {
  3. @Override
  4. public synchronized void run() {
  5.  
  6. }
  7. };;
  8. thread = new Thread(runnable);
  9. thread.start();

      
Código
  1. new Thread(new Runnable() {
  2. @Override
  3. public void run() {
  4.  
  5. }
  6. });


Título: Re: como usuar varios hilos en una clase??
Publicado por: Debci en 26 Junio 2010, 20:45 pm
Puedes hacerlo de varias formas

     
Código
  1.   Thread thread = null;
  2.        Runnable runnable = new Runnable() {
  3. @Override
  4. public synchronized void run() {
  5.  
  6. }
  7. };;
  8. thread = new Thread(runnable);
  9. thread.start();

      
Código
  1. new Thread(new Runnable() {
  2. @Override
  3. public void run() {
  4.  
  5. }
  6. });
Creo que es mas sencillo:

Código
  1. public class HiloCronometro extends Thread
  2. {
  3. public HiloCronometro(int dato)
  4. {
  5. //Prototipo creado por si quieres compartirle datos al thread facilmente
  6. //En el cuerpo del prototipo podemos incializar datos, convertirlos...
  7. }
  8. public void run()
  9. {
  10. //Cuerpo de ejecucion del thread
  11. }
  12. }
  13.  
  14.  
Y para arrancarlo:

Código
  1. HiloCronometro crono = new HiloCronometro();
  2. crono.start();
  3.  
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

Código:
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

Código:
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.

Citar
Existen 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
Disculpan que responda el tema solucionado, pero deseo opinar algo.

Citar
Existen buenos juegos que usan solo un thread.

Saludos!!
Por supuesto ;)

Cierro tema, creo que no hay mas que decir.

Saludos