// La escena se debe actualizar en este método que se repite "varias" veces por segundo
 // Aquí es donde programan TODA la acción de la escena (movimientos, choques, disparos, etc.)
 @Override
 protected void onManagedUpdate(float pSecondsElapsed) {
   super.onManagedUpdate(pSecondsElapsed);
 }
 public void liberarEscenaNivel3() {
   escenaNivel3.liberarEscena();
   escenaNivel3 = null;
 }
 /*
  * Pone en la pantalla la escena que llega como parámetro y guarda el nuevo estado
  */
 private void setEscenaBase(EscenaBase nueva) {
   engine.setScene(nueva);
   escenaActual = nueva;
   tipoEscenaActual = nueva.getTipoEscena();
 }
 public void liberarEscenaNivel1() {
   escenaNivel1.liberarEscena();
   escenaNivel1 = null;
 }
 public void liberarEscenaNivel2() {
   escenaNivel2.liberarEscena();
   escenaNivel2 = null;
 }
 public void liberarEscenaRules() {
   escenaRules.liberarEscena();
   escenaRules = null;
 }
 public void liberarEscenaHistoria() {
   escenaHistoria.liberarEscena();
   escenaHistoria = null;
 }
 public void liberarEscenaOpciones() {
   escenaOpciones.liberarEscena();
   escenaOpciones = null;
 }
 // *** Libera la escena de AcercDe
 public void liberarEscenaAcercaDe() {
   escenaAcercaDe.liberarEscena();
   escenaAcercaDe = null;
 }
 // *** Libera la escena de MENU
 public void liberarEscenaMenu() {
   escenaMenu.liberarEscena();
   escenaMenu = null;
 }
 // *** Libera la escena de Splash
 public void liberarEscenaSplash() {
   escenaSplash.liberarEscena();
   escenaSplash = null;
 }
Example #12
0
  @Override
  protected void onManagedUpdate(float pSecondsElapsed) {
    super.onManagedUpdate(pSecondsElapsed);

    if (!juegoCorriendo) {
      return;
    }

    // Acumular tiempo
    tiempoEnemigos += pSecondsElapsed;
    if (tiempoEnemigos > LIMITE_TIEMPO) {
      // Se cumplió el tiempo
      tiempoEnemigos = 0;
      if (LIMITE_TIEMPO > 0.5f) {
        LIMITE_TIEMPO -= 0.15f;
      }
      Sprite spriteEnemigo =
          cargarSprite(
              ControlJuego.ANCHO_CAMARA + regionEnemigo.getWidth(),
              (float) (Math.random() * ControlJuego.ALTO_CAMARA - regionEnemigo.getHeight())
                  + regionEnemigo.getHeight(),
              regionEnemigo);
      Enemigo nuevoEnemigo = new Enemigo(spriteEnemigo);
      listaEnemigos.add(nuevoEnemigo);
      attachChild(nuevoEnemigo.getSprite());
      Log.i("Tamaño", "Datos: " + listaEnemigos.size());
    }
    // Actualizar cada uno de los listaEnemigos y ver si alguno ya salió de la pantalla
    for (int i = listaEnemigos.size() - 1; i >= 0; i--) {
      Enemigo enemigo = listaEnemigos.get(i);

      enemigo.mover(-10, 0);

      if (enemigo.getSprite().getX() < -enemigo.getSprite().getWidth()) {
        detachChild(enemigo.getSprite());
        listaEnemigos.remove(enemigo);
      }

      // Revisa si choca el personaje con el enemigo
      if (spritePersonaje.collidesWith(enemigo.getSprite())) {
        detachChild(enemigo.getSprite());
        listaEnemigos.remove(enemigo);
        energia -= 10;
        Log.i("ENERGIA", "Energia: " + energia);
        if (energia <= 0) {
          juegoCorriendo = false;
          // Agrega pantalla de fin
          Sprite spriteFin =
              new Sprite(
                  ControlJuego.ANCHO_CAMARA / 2,
                  ControlJuego.ALTO_CAMARA / 2,
                  regionFin,
                  actividadJuego.getVertexBufferObjectManager()) {
                @Override
                public boolean onAreaTouched(
                    TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
                  if (pSceneTouchEvent.isActionUp()) {
                    onBackKeyPressed();
                  }
                  return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
                }
              };
          registerTouchArea(spriteFin);
          attachChild(spriteFin);
        }
      }
    }
  }