예제 #1
0
 private void insertarNodos() {
   for (int i = 0; i < 13; i++) {
     if (i % 2 == 0) {
       for (int j = 0; j < 13; j++) {
         grafo.ponerImagen(i, j, 17);
       }
     } else {
       for (int j = 0; j < 13; j++) {
         if (i % 2 == 0) grafo.ponerImagen(i, j, 17);
         else grafo.ponerImagen(i, j, 2);
       }
     }
   }
 }
예제 #2
0
 public PrimerNivel() {
   setLayout(null);
   grafo = new matriz();
   insertarNodos();
   grafo.ponerImagen(6, 4, 4);
   grafo.ponerImagen(4, 2, 4);
   grafo.ponerImagen(5, 0, 4);
   grafo.ponerImagen(3, 2, 4);
   //        grafo.imprimir();
   BomberMan = new JLabel(new ImageIcon(getClass().getResource("/imagenes/frente.png")));
   this.add(BomberMan);
   BomberMan.setBounds(0, 0, 42, 52);
   matrizLabels = grafo.crearMatriz(matrizLabels);
   crearMatrizGrafica(); // pone los objetos que se modifican solo una vez en la pantalla
   crearMatrizGraficaFondo(); // crea los objetos estaticos que nunca cambian
   addKeyListener(this);
 }
예제 #3
0
  public void keyPressed(KeyEvent arg0) {
    // si se mantiene presionada
    // System.out.println(arg0.getKeyChar());
    switch (arg0.getKeyChar()) {
      case 'w':
        {
          if (posy != 0 && checkear(posx, posy, "arriba", retraso)) {
            posy = posy - retraso;
            BomberMan.setBounds(posx, posy, 47, 48);

            if (contadorPasos % 10 == 0
                || contadorPasos % 10 == 1
                || contadorPasos % 10 == 2
                || contadorPasos % 10 == 3
                || contadorPasos % 10 == 4) {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/espalda.png")));
              contadorPasos++;
            } else {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/espalda2.png")));
              contadorPasos++;
            }
          }
          break;
        }
      case 's':
        {
          if (posx != 587 && checkear(posx, posy, "abajo", retraso)) {
            posy = posy + retraso;
            BomberMan.setBounds(posx, posy, 47, 48);

            if (contadorPasos % 10 == 0
                || contadorPasos % 10 == 1
                || contadorPasos % 10 == 2
                || contadorPasos % 10 == 3
                || contadorPasos % 10 == 4) {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/frente.png")));
              contadorPasos++;
            } else {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/frente2.png")));
              contadorPasos++;
            }
          }
          break;
        }
      case 'a':
        {
          if (posx != 0 && checkear(posx, posy, "izquierda", retraso)) {
            posx = posx - retraso;
            BomberMan.setBounds(posx, posy, 47, 48);

            if (contadorPasos % 10 == 0
                || contadorPasos % 10 == 1
                || contadorPasos % 10 == 2
                || contadorPasos % 10 == 3
                || contadorPasos % 10 == 4) {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/izq.png")));
              contadorPasos++;
            } else {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/izq2.png")));
              contadorPasos++;
            }
          }
          break;
        }
      case 'd':
        {
          if (posx != 570 && checkear(posx, posy, "derecha", retraso)) {
            posx = posx + retraso;
            BomberMan.setBounds(posx, posy, 47, 48);

            if (contadorPasos % 10 == 0
                || contadorPasos % 10 == 1
                || contadorPasos % 10 == 2
                || contadorPasos % 10 == 3
                || contadorPasos % 10 == 4) {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/der.png")));
              contadorPasos++;
            } else {
              BomberMan.setIcon(new ImageIcon(getClass().getResource("/imagenes/der2.png")));
              contadorPasos++;
            }
          }
          break;
        }
      case ' ':
        {
          grafo.imprimir();
          break;
        }
    }
  }
예제 #4
0
  private boolean checkear(int posx, int posy, String direccion, int retraso) {
    int x1, x2, y1, y2;
    Casilla aux;

    if (direccion.equals("arriba")) {
      y1 = ((posy - retraso) + 10) / 52;
      x1 = (posx + 10) / 42;
      x2 = (posx + 31) / 42;
      y2 = (posy - retraso + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) return false;

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        System.out.println("xxx");
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    } else if (direccion.equals("abajo")) {
      y1 = (posy + retraso + 10) / 52;
      x1 = (posx + 10) / 42;
      x2 = (posx + 31) / 42;
      y2 = (posy + retraso + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) {
        return false;
      }

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    } else if (direccion.equals("derecha")) {
      y1 = (posy + 10) / 52;
      x1 = (posx + retraso + 10) / 42;
      x2 = (posx + 31 + retraso) / 42;
      y2 = (posy + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) {
        return false;
      }

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    } else if (direccion.equals("izquierda")) {
      y1 = (posy + 10) / 52;
      x1 = (posx - retraso + 10) / 42;
      x2 = (posx + 31 - retraso) / 42;
      y2 = (posy + 41) / 52;

      if (grafo.checkearParedes(x1, y1)
          || grafo.checkearParedes(x2, y2)
          || grafo.checkearParedes(x1, y2)
          || grafo.checkearParedes(x2, y1)) {
        return false;
      }

      aux = grafo.obtenerNodo(posx / 42, posy / 52);

      if (!(aux.equals(grafo.obtenerNodo((x1 + x2) / 2, (y1 + y2) / 2)))) {
        aux.eliminar(0);
      }

      grafo.ponerImagen((x1 + x2) / 2, (y1 + y2) / 2, 0);
    }

    return true;
  }