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