Exemplo n.º 1
1
 public void pausar() {
   if (t != null) t.suspend();
   if (soltarCoco != null) soltarCoco.suspend();
   suspender = true;
   laberinto1.stopCocos();
   if (laberinto1.areComidos())
     try {
       cocoComido.Pausa();
     } catch (Exception ex) {
       Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
     }
   else if (laberinto1.areweakCocos())
     try {
       cocoWeak.Pausa();
     } catch (Exception ex) {
       Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
     }
   else
     try {
       cocoNormal.Pausa();
     } catch (Exception ex) {
       Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
     }
 }
Exemplo n.º 2
0
 public synchronized void reanudar() {
   if (t != null) t.resume();
   if (soltarCoco != null) soltarCoco.resume();
   suspender = false;
   laberinto1.reanudarCocos();
   if (laberinto1.areComidos())
     try {
       cocoComido.Continuar();
     } catch (Exception ex) {
       Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
     }
   else if (laberinto1.areweakCocos())
     try {
       cocoWeak.Continuar();
     } catch (Exception ex) {
       Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
     }
   else
     try {
       cocoNormal.Continuar();
     } catch (Exception ex) {
       Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
     }
   continuar = true;
   notify();
 }
Exemplo n.º 3
0
 private void reiniciar() {
   laberinto1.reiniciar();
   reanudar(); // reanudamos la partida por si fue pausada
   thread.interrupt();
   thread = new Thread(this);
   thread.start();
 }
Exemplo n.º 4
0
  public void run() {
    laberinto1.stopCocos();

    try {
      intro.Play();
      laberinto1.drawMessage("Get Ready!");
      soltarCoco =
          new Thread() {
            @Override
            public void run() {
              while (true) {
                try {
                  Thread.sleep(6000);
                } catch (InterruptedException ex) {
                  Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
                }
                laberinto1.releaseCoco();
              }
            }
          };

      Thread.sleep(5000);
      laberinto1.drawMessage("");
      laberinto1.reanudarCocos();
      soltarCoco.start();
      cocoNormal.Play();

      while (continuar) {
        Thread.sleep(12);
        synchronized (this) {
          while (suspender) {
            wait();
          }
        }

        if (laberinto1.pacman_muerto) {
          parar();
          laberinto1.stopCocos();
          if (t != null) t.stop();
          if (soltarCoco != null) soltarCoco.stop();
          cocoNormal.Stop();
          waka.Stop();
          die.Play();
          Thread.sleep(3);
          panelPuntuaciones1.setVidas(--vidas);
          if (vidas < 0) laberinto1.drawMessage("Game Over  ");
          else {
            reiniciar();
          }
        }

        if (laberinto1.areComidos()) {
          if (laberinto1.areweakCocos()) cocoWeak.Pausa();
          else cocoNormal.Pausa();
          cocoComido.Play();
        } else {
          cocoComido.Stop();
          if (laberinto1.areweakCocos()) cocoWeak.Continuar();
          else cocoNormal.Continuar();
        }

        if (laberinto1.areweakCocos())
          if (laberinto1.isNuevoFantasmaComido()) {
            int n = laberinto1.getFantasmasMuertos();
            switch (n) {
              case 1:
                puntuacion += 200;
                break;
              case 2:
                puntuacion += 400;
                break;
              case 3:
                puntuacion += 800;
                break;
              case 4:
                puntuacion += 1600;
                break;
            }
            laberinto1.setNuevoFantasmaComido(false);
            panelPuntuaciones1.setPuntuacion(puntuacion);
          }

        switch (laberinto1.moverPacMan()) {
          case Laberinto.LITTLEPOINT:
            waka.Play();
            puntuacion += 10;
            panelPuntuaciones1.setPuntuacion(puntuacion);
            break;
          case Laberinto.BIGPOINT:
            waka.Play();
            puntuacion += 50;
            panelPuntuaciones1.setPuntuacion(puntuacion);

            // hebra para que vaya mas fluido el sonido
            t =
                new Thread() {
                  @Override
                  public void run() {
                    try {

                      cocoNormal.Stop();
                      cocoWeak.Play();
                      laberinto1.setweakCocos(true);
                      Thread.sleep(6000);
                      cocoWeak.Stop();
                      cocoNormal.Play();
                      laberinto1.setweakCocos(false);
                      this.finalize();
                    } catch (Exception ex) {
                      Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (Throwable ex) {
                      Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
                    }
                  }
                };
            t.start();
            /////////////////////////////////////////////

            break;
          case Laberinto.GHOST:
            break;
          default:
            break;
        }
        laberinto1.repaint();
      } // end while(continuar)
    } catch (InterruptedException e) {
      System.out.println("Hilo interrumpido: " + e);
    } catch (Exception ex) {
      Logger.getLogger(ComeCocosView.class.getName()).log(Level.SEVERE, null, ex);
    }
  }