// 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);
 }
  @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);
        }
      }
    }
  }