public Personaje() : base("Sprite/orc.png", 64)//256alto /4 filas =64 { //Movimiento arriba = new Animacion(512, 0, 9); abajo = new Animacion(640, 0, 9); izquierda = new Animacion(578, 0, 9); derecha = new Animacion(704, 0, 9); //Ataque atqArb = new Animacion(775, 0, 6);//cada 64 atqIzq = new Animacion(839, 0, 6); atqAbj = new Animacion(903, 0, 6); atqDer = new Animacion(967, 0, 6); //Magia MagiaArribaAnim = new Animacion(0, 0, 7); MagiaIzquierdaAnim = new Animacion(64, 0, 7); MagiaAbajoAnim = new Animacion(128, 0, 7); MagiaDerechaAnim = new Animacion(192, 0, 7); //Morir o hacerse el muerto y Levantarse //Version como puedo invertir el bucle para que se levante MorirAnim = new Animacion(1280, 0, 6); LevantarseAnim = new Animacion(1280, 192, 6);//ARREGLAR,No cambia el numero de izquierda VIDAMAX = 35; velocidadDeMover = 400;//150 velocidadDeAnimacion = 0.05f; comoAtaca = EstadosPj.idle; nombre = "OrKo"; }
private void DondeChocaEnem(EstadosPj estado, float deltaTiempo) { switch (estado) { case EstadosPj.MoverArriba: enemigo.YPOS_ANIMA += enemigo.GetVelocidad() * deltaTiempo; break; case EstadosPj.MoverIzquierda: enemigo.XPOS_ANIMA += enemigo.GetVelocidad() * deltaTiempo; break; case EstadosPj.MoverAbajo: enemigo.YPOS_ANIMA -= enemigo.GetVelocidad() * deltaTiempo; break; case EstadosPj.MoverDerecha: enemigo.XPOS_ANIMA -= enemigo.GetVelocidad() * deltaTiempo; break; } }
private void DondeChocaPj(EstadosPj estado, float deltaTiempo) { switch (estado) { case EstadosPj.MoverArriba: personaje.YPOS_ANIMA += personaje.GetVelocidad() * deltaTiempo; break; case EstadosPj.MoverIzquierda: personaje.XPOS_ANIMA += personaje.GetVelocidad() * deltaTiempo; break; case EstadosPj.MoverAbajo: personaje.YPOS_ANIMA -= personaje.GetVelocidad() * deltaTiempo; break; case EstadosPj.MoverDerecha: personaje.XPOS_ANIMA -= personaje.GetVelocidad() * deltaTiempo; break; } }
private void TeclasAtaque(EstadosPj estadosPj, float deltaTiempo) { if (!Keyboard.IsKeyPressed(Keyboard.Key.R)) { enemigo.GetSprite().Color = colorEnem; } else { FloatRect per = personaje.GetSprite().GetGlobalBounds(); FloatRect enem = enemigo.GetSprite().GetGlobalBounds(); EstadosPj estadoPj = personaje.ESTADO_AHORA_PJ; EstadosPj estadoEnem = enemigo.ESTADO_AHORA_PJ; if (per.Intersects(enem)) { textoDamage.setIsActivo(true); switch (estadoPj) { case EstadosPj.MoverArriba: personaje.ESTADO_AHORA_PJ = EstadosPj.AtacarArriba; break; case EstadosPj.MoverIzquierda: personaje.ESTADO_AHORA_PJ = EstadosPj.AtacarIzquierda; break; case EstadosPj.MoverAbajo: personaje.ESTADO_AHORA_PJ = EstadosPj.AtacarAbajo; break; case EstadosPj.MoverDerecha: personaje.ESTADO_AHORA_PJ = EstadosPj.AtacarDerecha; break; } personaje.Actualizar(deltaTiempo); } enemigo.GetSprite().Color = Color.Red; enemigo.RecibeDano(personaje.DANIO); //Rematar(enemigo, EstaMuerto(enemigo)); } }
private bool ChequeoColision(float deltaTiempo) { FloatRect per = personaje.GetSprite().GetGlobalBounds(); FloatRect enem = enemigo.GetSprite().GetGlobalBounds(); EstadosPj estadoPj = personaje.ESTADO_AHORA_PJ; EstadosPj estadoEnem = enemigo.ESTADO_AHORA_PJ; if (per.Intersects(enem)) { Clock tiempoCombate = new Clock(); enemigo.CONTACTO = true; isActivo = true; seChocan = true; DondeChocaPj(estadoPj, deltaTiempo); DondeChocaEnem(estadoEnem, deltaTiempo); TeclasAtaque(estadoPj, deltaTiempo); } else { seChocan = false; } return(seChocan); }
public override void Actualizar(float DeltaTime) { //hacer update de la barra de vida this.ESTADO_AHORA_PJ = EstadosPj.idle; //Si se toca el click izquierdo del mouse ataca ChequeoMorirLevantarse(); if (this.ESTADO_AHORA_PJ != EstadosPj.idle) { comoAtaca = this.ESTADO_AHORA_PJ; } ChequeoMagia(); if (Keyboard.IsKeyPressed(Keyboard.Key.W)) { //Colision Pared Top if (YPOS_ANIMA < 0.0f - GetIntRect().Height / 3.6f) { this.ESTADO_AHORA_PJ = EstadosPj.idle; } else { this.ESTADO_AHORA_PJ = EstadosPj.MoverArriba; } } else if (Keyboard.IsKeyPressed(Keyboard.Key.S)) { //Colision Pared Bot if (YPOS_ANIMA > Juego.height - GetIntRect().Height / 2.0f) { this.ESTADO_AHORA_PJ = EstadosPj.idle; } else { this.ESTADO_AHORA_PJ = EstadosPj.MoverAbajo; } } else if (Keyboard.IsKeyPressed(Keyboard.Key.A)) { //Colision Pared Left if (XPOS_ANIMA < 0.0f - GetIntRect().Width / 2.0f) { this.ESTADO_AHORA_PJ = EstadosPj.idle; } else { this.ESTADO_AHORA_PJ = EstadosPj.MoverIzquierda; } } else if (Keyboard.IsKeyPressed(Keyboard.Key.D)) { //Colision Pared Right if (XPOS_ANIMA > Juego.width - GetIntRect().Width / 4.0f) { this.ESTADO_AHORA_PJ = EstadosPj.idle; } else { this.ESTADO_AHORA_PJ = EstadosPj.MoverDerecha; } } base.Actualizar(DeltaTime); }