예제 #1
0
  /**
   * Efecto provocado por el Actor a que colisiona con el Actor actual.
   *
   * @param a Actor que colisiona al Actor actual.
   * @throws NullPointerException Si a es null.
   * @throws ColisionException Si se produce algún error en la colisión.
   */
  public void colisionar(Actor a) throws ColisionException, NullPointerException {
    if (a == null)
      throw new NullPointerException(
          "Mario.colisionar()" + "\n" + "Imposible colisionar con Actor nulo.");

    try {
      a.colisionarPj(this);
    } catch (Exception e) {
      throw new ColisionException(
          "Mario.colisionar()" + "\n" + "Detalles del Error:" + "\n" + e.getMessage());
    }
  }
예제 #2
0
  /**
   * Realiza la acción de morir (ser destruido) de Mario.
   *
   * @throws NullPointerException Si jugador es null.
   * @throws AccionActorException Si se produce un error al morir.
   */
  public void morir() throws NullPointerException, AccionActorException {
    if (jugador == null)
      throw new NullPointerException(
          "Mario.morir()" + "\n" + "Imposible quitar vida al Jugador. Jugador es null.");

    spriteManager.cambiarSprite(miCaracteristica.spriteMuerto());
    ActualizadorNivel.act().eliminarCaible(this);
    ActualizadorNivel.act().eliminarPJ(this);
    super.morir();
    upNeeder.notUpdate();
    upNeeder = null;

    try {
      jugador.quitarVida();
    } catch (ClassCastException e) {
      throw new AccionActorException(
          "Mario.morir()" + "\n" + "Imposible obtener los puntos del actor causante de la muerte.");
    }
  }