Beispiel #1
0
  public void aplicarReglasDeMovimiento(Nivel nivel) {
    if (movimiento) {
      if (aMover > 0) {
        // Nos movemos con la velocidad
        double paso = Math.min(aMover, velocidadMovimiento + (buffosVelocidad * 5));
        aMover -= paso;

        switch (orientacion) {
          case Jugador.ARRIBA:
            y -= paso;
            break;
          case Jugador.ABAJO:
            y += paso;
            break;
          case Jugador.IZQUIERDA:
            x -= paso;
            break;
          case Jugador.DERECHA:
            x += paso;
            break;
        }

        // Se acabo el movimiento
      } else {
        movimiento = false;

        // Movemos el jugador a la casilla mas cercana (deberia estar ya ahi, pero por si acaso hay
        // errores de redondeo o lo que sea)
        x = Ar.x(nivel.getTileXFromCoord(x) * Tile.ancho + Tile.ancho / 2);
        y = Ar.y(nivel.getTileYFromCoord(y) * Tile.altura + Tile.altura / 2);
      }
    }
  }
Beispiel #2
0
  /**
   * Método que recibe a un enemigo en la celda
   *
   * @param e de tipo Enemigo que representa el enemigo a recibir
   */
  public void recibirEnemigo(Enemigo e, int dir) {
    if (miBomba == null) {
      if (miPared == null) {
        Celda celdaAnterior =
            miNivel.obtenerCelda(e.obtenerPosicion().obtenerX(), e.obtenerPosicion().obtenerY());
        celdaAnterior.eliminarEnemigo(e); // LO QUITA DE LA CELDA ANTERIOR
        e.obtenerPosicion().establecerX(miPosicion.obtenerX());
        e.obtenerPosicion()
            .establecerY(miPosicion.obtenerY()); // ACTUALIZA LAS POSICIONES LOGICAS Y GRAFICAS
        graficos.recibirEnemigo(e, miPosicion);
        e.obtenerGrafico().mover(dir);
        if (miBomberman != null) { // VERIFICA SI MATO AL BOMBERMAN0
          boolean soyDios = miBomberman.obtenerModoDios();
          if (!soyDios) {
            miBomberman.morir(); // ACA LLAMARIA A LA FUNCION MATAR BOMBERMAN
            this.miNivel.obtenerManejadorGUI().cartelPerder();
          }
        }

        this.añadirEnemigo(e);
      } else {
        miPared.recibirEnemigo(e, dir);
      }
    }
  }
Beispiel #3
0
  /**
   * Método que recibe al bomberman en la celda
   *
   * @param b de tipo Bomberman que representa el Bomberman a recibir
   */
  public void recibirBomberman(Bomberman b, int dir) {
    if (miBomba == null) {
      if (miPared == null) {
        Celda celdaAnterior =
            miNivel.obtenerCelda(b.obtenerPosicion().obtenerX(), b.obtenerPosicion().obtenerY());
        celdaAnterior.setBomberman(null);
        b.obtenerPosicion().establecerX(miPosicion.obtenerX());
        b.obtenerPosicion().establecerY(miPosicion.obtenerY());
        // graficos.recibirBomberman(b,miPosicion); No modifica en nada, seguir probando y borrarla
        // de última
        miBomberman = b;
        b.obtenerGrafico().mover(dir);
        boolean soyDios = miBomberman.obtenerModoDios();
        for (int i = 0;
            i < misEnemigos.length;
            i++) { // TESTEO PARA CHEQUEAR COLISION ENTRE BOMBERMAN Y ENEMIGO
          if (misEnemigos[i] != null && !soyDios) {
            miBomberman.morir(); // ACA LLAMARIA A LA FUNCION MATAR BOMBERMAN
            this.miNivel.obtenerManejadorGUI().cartelPerder();
            break; // PROVISORIO
          }
        }
        // PROVISORIO PARA PROBAR POWERUPS, ESTÁN SUELTOS EN LAS CELDAS. ESTO DEBERÍA MODELARSE EN
        // OTRA CLASE
        if (miPowerUp != null) {
          System.out.println("PowerUp tocado");
          miPowerUp.empower(b); // ACTIVA EL POWERUP
          miNivel.eliminarPowerUp(miPowerUp);
          this.quitarPowerUp();
          // AUMENTA LA PUNTUACION
          this.miNivel.obtenerManejadorGUI().establecerPuntaje(this.miNivel.obtenerPuntuacion());
        }
        b.actualizarPosicionBomba();

      } else {
        miPared.recibirBomberman(b, dir);
      }
    }
  }
  /** Inicia el tablero con los caramelos */
  public void iniciar() {

    caramelos = new Caramelo[alto][ancho];
    for (int x = 0; x < alto; x++) {
      for (int y = 0; y < ancho; y++) {
        Caramelo caramelo = nivel.carameloAleatorio();
        caramelos[x][y] = caramelo;
      }
    }
    Explosion exp = new Explosion();
    exp.explosionesEnCadena(this);
    // this.getNivel().setPuntaje(0);
  }
  public void setUp() {
    explosion = new Explosion(5, "Rojo");

    cor = new Coordenada(2, 1);
    cor3 = new Coordenada(1, 0);

    car1 = mock(Caramelo.class);
    car2 = mock(Caramelo.class);
    car3 = mock(Caramelo.class);

    caramelos[0][0] = car2;
    caramelos[0][1] = car1;
    caramelos[0][2] = car2;
    caramelos[1][0] = car2;
    caramelos[1][1] = car1;
    caramelos[1][2] = car2;
    caramelos[2][0] = car1;
    caramelos[2][1] = car1;
    caramelos[2][2] = car1;
    caramelos[0][3] = car2;
    caramelos[1][3] = car3;
    caramelos[2][3] = car3;
    caramelos[0][4] = car3;
    caramelos[1][4] = car3;
    caramelos[2][4] = car3;

    vecino1.add(arriba);
    vecino2.add(arriba);
    vecino2.add(arriba);

    nivel = mock(Nivel.class);

    t = new Tablero();
    t.setAlto(3);
    t.setAncho(5);
    t.setCaramelos(caramelos);
    t.setNivel(nivel);

    when(nivel.getObjetivos()).thenReturn(objetivos);
    when(car1.getColor()).thenReturn("Verde");
    when(car2.getColor()).thenReturn("Rojo");
    when(car3.getColor()).thenReturn("vacio");
  }
Beispiel #6
0
 public void CargarComboNiveles() throws ClassNotFoundException, SQLException {
   cbxniveles.removeAllItems();
   for (Nivel c : ADNNivel.CargarCombo()) {
     cbxniveles.addItem(c.getIdNivel() + "-" + c.getGrado());
   }
 }
 /** Constructor por defecto */
 public JuegoLogica() {
   Nivel = new Nivel();
   miPuntaje = Nivel.obtenerBomberman().getPuntaje();
   miTiempo = 0;
 }
Beispiel #8
0
  public void procesarOrdenes(Nivel nivel) {
    // Si no nos estamos moviendo, y nos envian un movimiento, nos movemos
    if (!movimiento) {
      int tileX = nivel.getTileXFromCoord(x);
      int tileY = nivel.getTileYFromCoord(y);

      if (moverAbajo) {
        sprite = sprites.get(CAMINANDO_ABAJO);
        orientacion = ABAJO;

        if (nivel.getMapaTiles()[tileX][tileY + 1].tipoColision == Tile.PASABLE
            && nivel.getBombaEnTile(tileX, tileY + 1) == null) {
          movimiento = true;
          aMover = Ar.alto(Tile.altura);
        }

      } else if (moverArriba) {
        sprite = sprites.get(CAMINANDO_ARRIBA);
        orientacion = ARRIBA;

        if (nivel.getMapaTiles()[tileX][tileY - 1].tipoColision == Tile.PASABLE
            && nivel.getBombaEnTile(tileX, tileY - 1) == null) {
          movimiento = true;
          aMover = Ar.alto(Tile.altura);
        }

      } else if (moverDerecha) {
        sprite = sprites.get(CAMINANDO_DERECHA);
        orientacion = DERECHA;

        if (nivel.getMapaTiles()[tileX + 1][tileY].tipoColision == Tile.PASABLE
            && nivel.getBombaEnTile(tileX + 1, tileY) == null) {
          movimiento = true;
          aMover = Ar.ancho(Tile.ancho);
        }

      } else if (moverIzquierda) {
        sprite = sprites.get(CAMINANDO_IZQUIERDA);
        orientacion = IZQUIERDA;

        if (nivel.getMapaTiles()[tileX - 1][tileY].tipoColision == Tile.PASABLE
            && nivel.getBombaEnTile(tileX - 1, tileY) == null) {
          movimiento = true;
          aMover = Ar.ancho(Tile.ancho);
        }
      }
    }

    // Explotar todas las bombas del jugador si procede
    if (buffoExplosionDistanciaBombas && explosionDistancia) {
      nivel.explotarBombas(this);
    }

    // Poner bomba si procede
    if (ponerBomba) {
      ponerBomba = false;

      if (bombasColocadas < bombasLimite) {
        if (nivel.getBombaEnCoords(x, y) == null) {
          Bomba b = new Bomba(context, this, nivel);
          nivel.bombas.add(b);
          nivel.addBombaEnTile(b);
        }
      }
    }

    // Patear bomba si procede
    if (buffoPateaBombas && pateaBomba) {

      int xAxisOffset = 0;
      int yAxisOffset = 0;
      switch (orientacion) {
        case ARRIBA:
          yAxisOffset = -1;
          break;

        case ABAJO:
          yAxisOffset = 1;
          break;

        case IZQUIERDA:
          xAxisOffset = -1;
          break;

        case DERECHA:
          xAxisOffset = 1;
          break;
      }
      int xTile = nivel.getTileXFromCoord(x);
      int yTile = nivel.getTileYFromCoord(y);
      int xTileEnFrente = xTile + xAxisOffset;
      int yTileEnFrente = yTile + yAxisOffset;
      Bomba bombaEnFrente = nivel.getBombaEnTile(xTileEnFrente, yTileEnFrente);

      if (bombaEnFrente != null) {
        bombaEnFrente.velocidadMovimiento = bombaEnFrente.velocidadLimite;
        bombaEnFrente.orientacion = orientacion;
      }
    }
  }