/// <summary> /// Calcula la rotación que debe tener el proyectil, en relación al Jugador. /// </summary> /// <param name="enemigo">Objeto de la clase Enemigo</param> /// <param name="jugador">Objeto de la clase Jugador</param> /// <returns></returns> double calcularRotacion(Enemigo enemigo, Jugador jugador) { try { double pendiente; //muy importante para ubicar al jugador y atacarlo pendiente = (jugador.posicion.X - enemigo.posicion.X) / (jugador.posicion.Y - enemigo.posicion.Y); double radianes = Math.Atan(pendiente); return(radianes); } catch (Exception) { throw; } }
bool sobrepasoAlJugador(Enemigo enemigo, Jugador jugador) { try { if (enemigo.posicion.Y >= jugador.posicion.Y - animacionEnemigo.FrameHeight) { return(true); } else { return(false); } } catch (Exception) { throw; } }
public void agregarEnemigo() { try { Enemigo enemigo = new Enemigo(); Texture2D texturaE; texturaE = contenedor.Load <Texture2D>(texturaEnemigo[(int)nivelActual]); animacionEnemigo = new AnimacionElementos(); if ((int)texturaEnemigoNivel.asteoide == (int)nivelActual) { animacionEnemigo.Inicialize(texturaE, Vector2.Zero, 35, 35, 8, 150, Color.White, 1f, true); } else { animacionEnemigo.Inicialize(texturaE, Vector2.Zero, 50, 45, 6, 150, Color.White, 1f, true); } int posicionAncho = generarPosicionAleatoria(nivelActual); if (nivelActual == (int)nivel.facil) { enemigo.inicializar(new Vector2(posicionAncho, 0 - animacionEnemigo.FrameHeight), velocidadEnemigo, viewport, generarDesplazamiento(posicionAncho), animacionEnemigo); enemigo.danio = 15; } else if (nivelActual == (int)nivel.medio) { enemigo.inicializar(new Vector2(posicionAncho, 0 - animacionEnemigo.FrameHeight), velocidadEnemigo, viewport, generarDesplazamiento(posicionAncho), true, animacionEnemigo); enemigo.danio = 10; } else { enemigo.inicializar(new Vector2(posicionAncho, 0 - animacionEnemigo.FrameHeight), velocidadEnemigo, viewport, generarDesplazamiento(posicionAncho), true, animacionEnemigo); enemigo.danio = 5; } enemigos.Add(enemigo); } catch (Exception) { } }