/** Mueve la {@link CamaraJuego} conforme a la posición del {@link Heroe} */ private void moverCamara() { try { Heroe heroe = getHeroe(); float factor = 1.7f; float destinoCamara; if (heroe.derecha()) { destinoCamara = heroe.getX() + heroe.getWidth() / 2 + camara.viewportWidth / 6; if (camara.position.x < destinoCamara) { camara.setPosicion( (float) (camara.position.x + heroe.velDelta() * factor), camara.position.y); } if (camara.position.x >= destinoCamara) { camara.setPosicion(destinoCamara, camara.position.y); } } else { destinoCamara = heroe.getX() + heroe.getWidth() / 2 - camara.viewportWidth / 6; if (camara.position.x > destinoCamara) { camara.setPosicion( (float) (camara.position.x - heroe.velDelta() * factor), camara.position.y); } if (camara.position.x <= destinoCamara) { camara.setPosicion(destinoCamara, camara.position.y); } } if (camara.getPosicionOrigen().x < 0) camara.setPosicionOrigen(0, camara.getPosicionOrigen().y); if (camara.getPosicionOrigen().x + camara.viewportWidth > mh.getWidth()) camara.setPosicionOrigen( mh.getWidth() - camara.viewportWidth, camara.getPosicionOrigen().y); } catch (EscenarioSinHeroeException e) { } }
@Override public boolean act(float delta) { Heroe h = (Heroe) getActor(); if (h != null) { h.setCooldownDano(h.getCooldownDano() - delta); h.actualizarTransparente(delta); if (h.getMovimiento() == 1) { h.moverHeroe(delta, "derecha"); } else if (h.getMovimiento() == -1) { h.moverHeroe(delta, "izquierda"); } } return false; }