public void CreaUnTableroConBombitaYUnProyectilYSeColisionanEntoncesBombitaPierdeUnaVida() { Tablero tablero = new Tablero(); Bombita bombita = new Bombita(); tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0) Proyectil bomba = new Proyectil(); tablero.AgregarEntidadEnCasillero(bomba, 0, 2); bomba.MoverIzquierda(); bomba.MoverIzquierda(); bomba.CuandoPaseElTiempo(0); Assert.AreEqual(0, bombita.Posicion.Fila); Assert.AreEqual(0, bombita.Posicion.Columna); Assert.AreEqual(2, bombita.Vidas); Assert.IsNull(bomba.Posicion); }
private void MoverProyectil(Proyectil proyectil) { if (proyectil.Duenio.Direccion == "este") { if (proyectil.posicionEnVentana.X + Game1.TexturasBombas["proyectil"].Width >= tablero.Dimension * proyectil.Posicion.textura.Width) return; Casillero casilleroSup; try { casilleroSup = tablero.ObtenerCasillero(proyectil.Posicion.Fila, proyectil.Posicion.Columna + 1); } catch (Exception) { return; } if ((casilleroSup != null) && (proyectil.posicionEnVentana.X + Game1.TexturasBombas["proyectil"].Width / 2 >= casilleroSup.posicionEnVentana.X + casilleroSup.textura.Width / 2)) { proyectil.MoverDerecha(); } proyectil.posicionEnVentana.X += proyectil.Velocidad; } if (proyectil.Duenio.Direccion == "oeste") { if (proyectil.posicionEnVentana.X <= 0) return; Casillero casilleroSup; try { casilleroSup = tablero.ObtenerCasillero(proyectil.Posicion.Fila , proyectil.Posicion.Columna -1); } catch (Exception) { return; } if ((casilleroSup != null) && (proyectil.posicionEnVentana.X + Game1.TexturasBombas["proyectil"].Width / 2 <= casilleroSup.posicionEnVentana.X + casilleroSup.textura.Width / 2)) { proyectil.MoverIzquierda(); } proyectil.posicionEnVentana.X -= proyectil.Velocidad; } if (proyectil.Duenio.Direccion == "norte") { if (proyectil.posicionEnVentana.Y <= 0) return; Casillero casilleroSup; try { casilleroSup = tablero.ObtenerCasillero(proyectil.Posicion.Fila - 1, proyectil.Posicion.Columna); } catch (Exception) { return; } if ((casilleroSup != null) && (proyectil.posicionEnVentana.Y + Game1.TexturasBombas["proyectil"].Height / 2 <= casilleroSup.posicionEnVentana.Y + casilleroSup.textura.Height / 2)) { proyectil.MoverArriba(); } proyectil.posicionEnVentana.Y -= proyectil.Velocidad; } if (proyectil.Duenio.Direccion == "sur") { if (proyectil.posicionEnVentana.Y + Game1.TexturasBombas["proyectil"].Height >= tablero.Dimension * proyectil.Posicion.textura.Height) return; Casillero casilleroSup; try { casilleroSup = tablero.ObtenerCasillero(proyectil.Posicion.Fila + 1, proyectil.Posicion.Columna); } catch (Exception) { return; } if ((casilleroSup != null) && (proyectil.posicionEnVentana.Y + Game1.TexturasBombas["proyectil"].Height / 2 >= casilleroSup.posicionEnVentana.Y + casilleroSup.textura.Height / 2)) { proyectil.MoverAbajo(); } proyectil.posicionEnVentana.Y += proyectil.Velocidad; } }