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